ESAPI
阅读数:230 评论数:0
跳转到新版页面分类
python/Java
正文
ESAPI是owasp提供的一套API级别的web应用解决方案。https://www.owasp.org/
maven
<dependency>
<groupId>org.owasp.esapi</groupId>
<artifactId>esapi</artifactId>
<version>2.1.0.1</version>
</dependency>
加入配置文件
在工程的资源文件目录下增加配置配置文件ESAPI.properties及validation.properties,文件内容可为空。如果为空则都取默认值。
使用
1、针对xss漏洞
//对用户输入“input”进行HTML编码,防止XSS
input = ESAPI.encoder().encodeForHTML(input);
//根据自己不同的需要可以选用以下方法
//input = ESAPI.encoder().encodeForHTMLAttribute(input);
//input = ESAPI.encoder().encodeForJavaScript(input);
//input = ESAPI.encoder().encodeForCSS(input);
//input = ESAPI.encoder().encodeForURL(input);
//针对富文本进行html编码
2、针对sql注入漏洞
除了支持mysql还支持oracle
String input1="用户输入1";
String input2="用户输入2";
//解决注入问题
input1 = ESAPI.encoder().encodeForSQL(new MySQLCodec(MySQLCodec.Mode.STANDARD),input1);
input2 = ESAPI.encoder().encodeForSQL(new MySQLCodec(MySQLCodec.Mode.STANDARD),input2);
String sqlStr="select name from tableA where id="+input1 +"and date_created ='" + input2+"'";
//执行SQL