码迷,mamicode.com
首页 > 其他好文 > 详细

commons-lang常用工具类StringEscapeUtils

时间:2015-09-25 13:17:21      阅读:268      评论:0      收藏:0      [点我收藏+]

标签:

在apache commons-lang(2.3以上版本)中为我们提供了一个方便做转义的工具类,主要是为了防止sql注入,xss注入攻击的功能。总共提供了以下几个方法:

 

1.escapeSql 提供sql转移功能,防止sql注入攻击,例如典型的万能密码攻击‘ ‘ or 1=1 ‘ ‘

  1. StringBuffer sql = new StringBuffer("select key_sn,remark,create_date from tb_selogon_key where 1=1 ");  
  2.         if(!CommUtil.isEmpty(keyWord)){  
  3.             sql.append(" and like ‘%" + StringEscapeUtils.escapeSql(keyWord) + "%‘");  
  4.         }  
StringBuffer sql = new StringBuffer("select key_sn,remark,create_date from tb_selogon_key where 1=1 ");
		if(!CommUtil.isEmpty(keyWord)){
			sql.append(" and like ‘%" + StringEscapeUtils.escapeSql(keyWord) + "%‘");
		}

2.escapeHtml /unescapeHtml  转义/反转义html脚本

  1. System.out.println(StringEscapeUtils.escapeHtml("<a>dddd</a>"));     
  2. 输出结果为:&lt;a&gt;dddd&lt;/a&gt;  
System.out.println(StringEscapeUtils.escapeHtml("<a>dddd</a>"));   
输出结果为:&lt;a&gt;dddd&lt;/a&gt;
  1. System.out.println(StringEscapeUtils.unescapeHtml("&lt;a&gt;dddd&lt;/a&gt;"));     
  2. 输出为:<a>ddd</a>  
System.out.println(StringEscapeUtils.unescapeHtml("&lt;a&gt;dddd&lt;/a&gt;"));   
输出为:<a>ddd</a>

3.escapeJavascript/unescapeJavascript 转义/反转义js脚本

  1. System.out.println(StringEscapeUtils.escapeJavaScript("<script>alert(‘1111‘)</script>"));     
  2. 输出为:&lt;script&gt;alert(‘111‘)&lt;/script&gt;  
System.out.println(StringEscapeUtils.escapeJavaScript("<script>alert(‘1111‘)</script>"));   
输出为:&lt;script&gt;alert(‘111‘)&lt;/script&gt;

4.escapeJava/unescapeJava 把字符串转为unicode编码

  1. System.out.println(StringEscapeUtils.escapeJava("中国"));     
  2. 输出为:用escapeJava方法转义之后的字符串为:/u4E2D/u56FD/u5171/u4EA7/u515A  

commons-lang常用工具类StringEscapeUtils

标签:

原文地址:http://www.cnblogs.com/thinkpad/p/4837841.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!