1、简要说明
在代码的管理上,该字符串处理的工具类稍微乱了一点。因为,设计之初,只是放几个简单的字符处理函数。然后,一直加,一直加,就变成现在这样子了。以后有时间,会对其进行一个更好的规划。在功能划分上,字符串处理有几种类型:
字符串转换处理 makeFirstCharUpperCase,makeFirstCharLowerCase,makeHumpString,removeAllBlankStrings
字符串逻辑判断处理 isEmptyString,countString,isJavaKeyWords,isCharsetSupported,
字符串安全处理 injectionTranslateForSQL,injectionTranslateForHtml,injectionTranslateForHtmlEditor,
下面将对这些函数一一进行描述。
2、API 调用说明
2.1、makeFirstCharUpperCase 将传入的字符串参数,转换为首字母大写的字符串。

2.2、makeFirstCharLowerCase 将传入的字符串参数,转换为首字母小写的字符串。

2.3、makeHumpString 将传入的字符串,按照“驼峰”写法,转换成新的字符串。第2个参数,是一个关于字符串的分隔符。程序通过识别分隔符,切割字符串,然后再按照驼峰写法组合成新字符串。

2.4、removeAllBlankStrings 删除传入字符串中的所有空白字符。

2.5、isEmptyString 判断字符串是否为空。空则返回 true,否则返回 false。这个函数比较常用,因为,系统后台接收到参数时,都要判断是否为空参数,然后进行默认值设置。

2.6、countString 计算传入的字符串中,指定的字符出现的次数。函数第1个参数是源字符串,第2个是要搜索的内容(以正则表达式方式书写)。

2.7、isJavaKeyWords 判断传入的字符串是否为 Java 语法关键字。这个函数,在动态生成信息时比较有用。因为,如果要动态生成一些java对象,那么名字肯定不能与关键字重名。

2.8、isCharsetSupported 判断传入的名称信息,判断字符集是否被支持使用。这个函数很有用,在涉及到字符处理时,有些字符集别名不知道是否可用,可以用这个函数测试一下。

2.9、injectionTranslateForSQL 对传入的字符串进行防SQL 注入处理。这个函数比较常用。在系统后台处理查询语句的参数时,基本都要用到这个函数。
2.9.1、简单的sql注入示例

2.9.2、防注入处理演示(防注入处理是按不同数据库类型来执行的,所以在处理前,要先设置数据库类型)

2.9.3、结果查看

2.10、injectionTranslateForHtml 对传入的字符串进行防 XSS 注入处理。XSS注入也是目前比较流行的一个网咯攻击手段。比如:在内容输入框直接写入js代码。等保存后,js就会在页面上自己执行。为了防止这类攻击,我们需要对页面参数进行字符转换。比如下图:


2.11、injectionTranslateForHtmlEditor 对富文本编辑框所接收的字符串,进行防 XSS 注入处理。
在前面,我们已经有了对于html中的XSS注入攻击的防范手段了,为什么还要加一个处理呢?因为,我网站上有网页编辑器,它是需要以html形式保存内容的。就是说,我们不能简单直接地替换尖括号内容。因此,我们需要一个能防御XSS注入的,更加复杂的,一个处理函数。
在编辑器中,用户能进行js注入的有3种可能性:js代码块、标签的on属性、以及<a>标签的href属性。在工具包种,我对这3种处理都进行了替换。下面演示一个完整的html内容替换。



本章节完结