ESAPI是一个免费、开源的Web应用程序安全控制组件,在JavaWeb应用中可帮助开发人员降低应用的风险。 ESAPI是OWASP组织的一个开源项目
主页是: http://www.owasp.org/index.php/ESAPI
介 绍 :http://owasp-esapi-java.googlecode.com/files/OWASP%20ESAPI.ppt
下载地址是:https://code.google.com/p/owasp-esapi-java/downloads/list
ESAPI很适合一个新的开发项目的安全组件,各版本的ESAPI包含如下基本设计:
1.具有一个安全接口集;
2.对每一种安全控制有一种参考实现;
3.对每一种安全控制可以有你自己的实现方法。
很多著名的大公司开始将ESAPI作为自己保障Web应用程序安全的手段,包括美国运通公司,Apache基金会,世界银行等。
ESAPI对常见安全漏洞都提供对应的安全控制实现方法: ESAPI使用示例: 使用ESAPI防止XSS的做法: String safe = ESAPI.encoder().encodeForHTML( request.getParameter( "input" ) ); 对用户输入“input”进行HTML编码,防止XSS。
System.out.println(ESAPI.encoder().encodeForHTML("<a href='sdfs'></a> < script > alert(); </ script >" ));
输出的结果
<a href='sdfs'></a> < script > alert(); </ script >
使用ESAPI防止ORACLE数据库SQL注入的做法:
String sqlStr=“select name from tableA where id=”+
ESAPI.encoder().encodeForSQL(ORACLE_CODEC,validatedUserId)
+“and date_created”='“
+ ESAPI.encoder()。encodeForSQL(ORACLE_CODEC,validatedStartDate)+"'";
myStmt = conn.createStatement(sqlStr);
补充: XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。