像这样的东西
https://example.com/my_account/login?"><script>alert(1347)</script>当我在浏览器中输入这个url时,它会显示一个警告。如何防止这种情况发生?
编辑:这是一个使用Struts框架的java web应用程序...
发布于 2014-08-07 15:30:24
本质上,为了防止XSS,必须对字符串进行转义。一个不错的指南是:
https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet
您没有提到您使用的是哪种服务器和/或客户端框架。但从本质上讲,您必须转义用户提供给您的字符串,以便对<、> &和其他可能将代码注入到html中的危险字符进行编码。大多数web框架都有这个功能。在java中,使用owasp-esapi-java,它是:
String safe = ESAPI.encoder().encodeForHTML( request.getParameter( "input" ) );你可以在html中输出safe。希望这能有所帮助。如果您正在使用特定的框架(rails、play、django、struts、jsp等),请询问另一个关于该框架的XSS预防的问题。
发布于 2014-08-07 15:32:59
您必须确定从外部接收的内容类型,并在将其发送到任何浏览器之前对其进行适当处理。
如果你认为它是文本,那么:
<和&,方法是用正确的HTML实体替换所有必要的内容"和如果您认为它是超文本标记语言,那么您需要选择接受哪些元素(例如<b>、<i>等),并过滤掉任何其他元素。
如何做到这一点取决于您使用的语言/框架。
https://stackoverflow.com/questions/25176473
复制相似问题