我正在努力保护我的应用程序的输入请求参数免受XSS攻击。我遇到了用于防止XSS攻击的owasp备忘单。我正在按照 https://github.com/owasp/java-html-sanitizer 上的说明进行操作。
我已经设法使用以下代码阻止了XSS攻击(通过提供附加到输入参数的onMouseOver等事件来完成(:
PolicyFactory policy = Sanitizers.FORMATTING.and(Sanitizers.BLOCKS);
value = policy.sanitize(value); // Value is the "value" of input param
这会将查询字符串中提供的类似 name=FIRST" onmouseover="alert('222'(的内容转换为: X=Val1&Y=&Z=&A=false&name=FIRST" onmouseover="alert('222'(&B=456&C=123到
<span class="db-wrap-name" title="FIRST"" onload="alert('222s2')="">FIRST" onload="alert('2222')</span>
我的问题是否足以保护输入参数免受 XSS 的影响?
PS:有人可以指出我到线性来源以通过OWASP HTML清理。我已经设法对此有所了解,但存在差距。如果我能得到一个线性源,那就太好了。
谢谢
No.这还不够。请参阅 OWASP XSS 备忘单 。
对于战斗 XSS,您必须:
- 验证您的输入
- 最终转义输入中的某些字符
- 对发送回客户端的数据进行编码。