ESAPI

阅读数:173 评论数: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



相关推荐