我已经能够防止struts 1.2中的XSS攻击,方法是在bean中结合filter="true“:写消息,并在我使用的标记库中使用StringEscapeUtils.escapeHtml4(string)。但是,我可以通过以下形式的URL攻击我的站点.
www.mysite.com/App/Start.do?logo=mylogo'><script>alert("ATTACK")</script>任何关于防止这件事的最佳方法的建议。我尝试使用servlet过滤器,但不希望将所有请求输入转换为特殊字符。
发布于 2013-07-31 18:58:19
我发现阻止XSS的最简单的方法是在写到网页之前用<、>和"替换所有的<、<和"字符。这将保护您免受XSS的攻击,只要您不将用户输入放在诸如脚本标记、图像标记(XSS从图像标记的src= )等地方,因为它们将无法创建自己的标记。
在PHP中,您可以使用编码所有字符的htmlSpecialChars方法这样做。但是Java没有这个方法,所以最快的方法就是替换它们,您应该亲自检查整个列表。实现5 replaceAll()应该不会太难
您使用的文档 StringEscapeUtils方法声称执行了我前面的建议,因此您应该检查是否正确地使用了该方法作为您的示例,不应该在这种预防形式中生存下来。
https://stackoverflow.com/questions/17978532
复制相似问题