清除来自XSS攻击的输入请求参数

时间:2019-10-08 07:09:41

标签: xss sanitization owasp input-sanitization

我正在努力保护输入请求参数不受XSS攻击的影响。我偶然发现了Owasp备忘单,以防XSS攻击。我正在按照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&quot;" onload&#61;&#34;alert(&#39;222s2&#39;)="">FIRST" onload="alert('2222')</span>

我的问题是,这种消毒足以保护输入参数免受XSS侵害吗?

PS:有人可以将我指向线性源,以进行OWASP HTML消毒。我设法对此有所了解,但仍有差距。如果我能获得线性信号源,那就太好了。

谢谢

1 个答案:

答案 0 :(得分:1)

不。这还不够。参见OWASP XSS Cheat Sheet

对于XSS战斗,您必须:

  1. 验证您的输入
  2. 最终在输入中转义一些字符
  3. 对发送回客户端的数据进行编码。