当前位置:   article > 正文

java web 防止sql注入攻击_JavaWeb防注入知识点(一)

sqlutils.escapesql(keyword)

一、防sql注入办法

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

203723a0ff477e2a1bcd2f1c9133841e.png

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

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脚本

System.out.println(StringEscapeUtils.escapeHtml("dddd"));

//输出结果为:dddd

System.out.println(StringEscapeUtils.unescapeHtml("dddd"));

//输出为:ddd3.escapeJavascript/unescapeJavascript 转义/反转义js脚本

System.out.println(StringEscapeUtils.escapeJavaScript(""));

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

System.out.println(StringEscapeUtils.escapeJava("中国"));

//输出为:用escapeJava方法转义之后的字符串为:/u4E2D/u56FD/u5171/u4EA7/u515A二、防js注入办法

如第一部分所说,可以使用commons-lang包后台转换实现;

还可以用 HTML 编码任何网站用户输入的数据,如: 使用 HTML 编码一个字符串的含意是什么呢?使用 HTML 编码字符串时,危险字符如 < 和 > 被替换为 HTML 实体,如 < 和 >。所以,当使用 HTML 编码字符串 时,它将转换为 。浏览器在解析编码的字符串时不再执行 JavaScript 脚本。而是显示无害的页面。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/150492
推荐阅读
相关标签
  

闽ICP备14008679号