在apache commons-lang(2.3以上版本)中为我们提供了一个方便做转义的工具类,主要是为了防止sql注入,xss注入攻击的功能。
commons-lang常用工具类StringEscapeUtils使用 - wjoygz - pauls private zone
1.escapeSql 提供sql转移功能,防止sql注入攻击,例如典型的万能密码攻击' ' or 1=1 ' '
1StringBuffer sql = new StringBuffer("select key_sn,remark,create_date from tb_selogon_key where 1=1 ");
2if(!CommUtil.isEmpty(keyWord)){
3sql.append(" and like '%" + StringEscapeUtils.escapeSql(keyWord) + "%'");
2.escapeHtml /unescapeHtml 转义/反转义html脚本
1System.out.println(StringEscapeUtils.escapeHtml("<A>dddd</A>"));
2输出结果为:
<a>dddd</a>
1System.out.println(StringEscapeUtils.unescapeHtml("<a>dddd</a>"));
2输出为:
<A>ddd</A>
3.escapeJavascript/unescapeJavascript 转义/反转义js脚本
1System.out.println(StringEscapeUtils.escapeJavaScript("<SCRIPT>alert('1111')</SCRIPT>
2"));
3输出为:
<script>alert('111')</script>
4.escapeJava/unescapeJava 把字符串转为unicode编码
1System.out.println(StringEscapeUtils.escapeJava("中国"));
2输出为:
用escapeJava方法转义之后的字符串为:/u4E2D/u56FD/u5171/u4EA7/u515A
另一个例子:
import org.apache.commons.lang.StringEscapeUtils;
public class EscapeString {
public static void main(String[] args) throws Exception {
String str = "APEC召开时不让点柴火做饭";
System.out.println("用escapeJava方法转义之后的字符串为:"+StringEscapeUtils.escapeJava(str));
System.out.println("用unescapeJava方法反转义之后的字符串为:"+StringEscapeUtils.unescapeJava(StringEscapeUtils.escapeJava(str)));
System.out.println("用escapeHtml方法转义之后的字符串为:"+StringEscapeUtils.escapeHtml(str));
System.out.println("用unescapeHtml方法反转义之后的字符串为:"+StringEscapeUtils.unescapeHtml(StringEscapeUtils.escapeHtml(str)));
System.out.println("用escapeXml方法转义之后的字符串为:"+StringEscapeUtils.escapeXml(str));
System.out.println("用unescapeXml方法反转义之后的字符串为:"+StringEscapeUtils.unescapeXml(StringEscapeUtils.escapeXml(str)));
System.out.println("用escapeJavaScript方法转义之后的字符串为:"+StringEscapeUtils.escapeJavaScript(str));
System.out.println("用unescapeJavaScript方法反转义之后的字符串 为:"+StringEscapeUtils.unescapeJavaScript(StringEscapeUtils.escapeJavaScript(str)));
/**输出结果如下:
用escapeJava方法转义之后的字符串为:APEC\u53EC\u5F00\u65F6\u4E0D\u8BA9\u70B9\u67F4\u706B\u505A\u996D
用unescapeJava方法反转义之后的字符串为:APEC召开时不让点柴火做饭
用escapeHtml方法转义之后的字符串 为:APEC召开时不让点柴火做饭
用unescapeHtml方法反转义之后的字符串为:APEC召开时不让点柴火做饭
用escapeXml方法转义之后的字符串 为:APEC召开时不让点柴火做饭
用unescapeXml方法反转义之后的字符串为:APEC召开时不让点柴火做饭
用escapeJavaScript方法转义之后的字符串为:APEC\u53EC\u5F00\u65F6\u4E0D\u8BA9\u70B9\u67F4\u706B\u505A\u996D
用unescapeJavaScript方法反转义之后的字符串为:APEC召开时不让点柴火做饭
}
}
表单富文本输入时,有html,需要转义,html+加中文时,用StringEscapeUtils.escapeHtml转义时,中文也转义了,经过查找,最终找到spring的org.springframework.web.util.HtmlUtils.htmlEscape
1
2
3
4
5
|
<dependency> <groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version> 3.0 . 6 .RELEASE</version>
</dependency> |
1
2
3
4
5
6
7
|
public static void main(String[] args) {
String a = "<html>吃饭</html>" ;
System.out.println(StringEscapeUtils.escapeHtml(a));
System.out.println(StringEscapeUtils.unescapeHtml(StringEscapeUtils.escapeHtml(a)));
System.out.println(HtmlUtils.htmlEscape(a));
System.out.println(HtmlUtils.htmlUnescape(HtmlUtils.htmlEscape(a)));
} |
相关推荐
在处理 JSON 数据时,经常会遇到一些字符串需要进行反转义的情况,尤其是在从文件中读取 JSON 字符串并希望将其转换为 JSON 对象时。本文将详细介绍如何对 JSON 串进行反转义操作,并去除其中的反斜杠,以便能够正确...
在JSON格式中,特殊字符如双引号(")需要通过反斜杠(\)进行转义,以便在字符串中正确地表示它们。然而,当JSON数据以字符串的形式存储或读取时(例如从文件中读取),这些反斜杠可能需要被去除,以便能够使用`...
总结来说,Apache Commons Lang库的`StringEscapeUtils`工具类是Java开发者处理字符串转义和反转义问题的强大助手。特别是在与JSON数据打交道时,`unescapeJson()`方法可以帮助我们有效地去除反斜杠,恢复原始数据,...
七、字符串转义 1、 转义特殊字符:String escaped = StringEscapeUtils.escapeJava("Hello\nWorld"); 输出结果:"Hello\\nWorld" 2、 反转义:String unescaped = StringEscapeUtils.unescapeJava(escaped); 输出...
字符串`escape`通常指的是对特殊字符进行转义,使其能够在特定上下文中正确解析。在编程语言中,例如JavaScript、Python或Java,有一些字符具有特殊含义,如`"`, `\`, `\n`, `\r`等。为了避免这些字符被解释为特殊...
Java中转义字符反斜杠的代替方法及repalceAll内涵解析 ...Java中转义字符反斜杠的代替方法需要根据不同的情况选择合适的方法,例如使用StringEscapeUtils工具类或replaceAll方法,以便正确地处理字符串转义问题。
lang中有一个很有用的处理字符串的工具类,其中之一就是StringEscapeUtils,这个工具类是在2.3版本以上加上的去的,利用它能很方便的进行html,xml,java等的转义与反转义,而且还能对关键字符串进行处理预防SQL注入,...
总之,Apache Commons Lang 3.4库,特别是`StringEscapeUtils`类,是Java开发者处理字符串转义问题的强大工具。通过合理利用这些工具,开发者可以编写出更安全、更健壮的代码,提高应用的稳定性和安全性。
Apache Commons Lang中的`StringEscapeUtils`类是用于处理字符串转义的重要工具,尤其是在防止跨站脚本(XSS)攻击方面。XSS是一种常见的Web安全漏洞,攻击者通过注入恶意脚本到网页中,使用户在不知情的情况下执行...
但如果你的字符串内容中包含与包围它的引号相同的类型,就需要使用转义字符`\`。比如,`var str = "He said, \"Hello!\"";` 这里,反斜杠`\`告诉JavaScript解析器,接下来的双引号不是字符串的结束,而是字符串的一...
- StringEscapeUtils:字符串转义和反转义的方法。 - SystemUtils:提供获取系统属性的方法。 - Validate:数据验证工具类,提供非空验证、类型验证等。 - WordUtils:用于对字符串中的单词进行操作,如大小写转换。...
在实际操作中,这可能会涉及到字符串转义、参数安全传递以及shell命令的构建等多个技术点。 首先,我们需要理解DataX的工作原理。DataX作为一个数据同步框架,支持多种数据源,如Oracle、PostgreSQL等,并提供了...
Apache Commons Lang 包含了一个名为`StringEscapeUtils`的类,它是处理字符串转义的关键。在这个3.1版本中,`StringEscapeUtils`提供了一个`unescapeHtml()`方法,可以将HTML编码的字符串解码为原始的非转义格式。...
3. **JavaScript转义**:`StringEscapeUtils.escapeJavaScript(String input)`方法转义JavaScript中的特殊字符,如将 `\` 转义为 `\\`,确保字符串在JavaScript环境中安全使用。 4. **SQL转义**:虽然Apache ...
这个类提供了各种字符串转义功能,比如将HTML、XML、JavaScript或SQL的特殊字符转义,避免注入攻击。例如,`escapeHtml()`可以将字符串中的HTML实体转换为它们的安全等价物,`unescapeJava()`则可以反转这个过程。 ...
在Android开发中,经常需要处理字符串的编码问题,特别是在与服务器进行JSON数据交换时。"xe5 android Escape UnicodeString to String" 这个主题涉及到的是如何将包含Unicode转义序列的字符串转换为可读的UTF-8编码...
`StringEscapeUtils` 类提供了对字符串进行转义和去转义的方法。 - **StringEscapeUtils.escapeHtml4()**: 转义HTML字符。 - **StringEscapeUtils.unescapeHtml4()**: 去转义HTML字符。 #### 九、StringUtils 的...
在修复后的代码中,可以看到Struts2使用了Apache Commons Lang库的`StringEscapeUtils`类来转义用户输入,确保了字符串的安全性。这样的修改阻止了直接的命令注入,增加了攻击者的难度。 总的来说,Struts2-007漏洞...
例如,创建一个名为`StringEscapeEditor`的类,继承自`PropertyEditorSupport`,并在`setAsText`方法中对字符串进行HTML转义,确保所有接收到的用户输入都得到安全处理。 以下是一个`StringEscapeEditor`的示例代码...
1. **Apache Commons Lang**:提供`StringEscapeUtils`类,可以方便地进行字符串转义。 2. **Spring MVC**:自动对视图模型中的数据进行转义,但需开启`web.servlet.view.EscapeHtml`属性或使用`@ResponseBody`注解...