如何在附加到网址时阻止javascript执行?

时间:2014-08-07 07:23:16

标签: javascript web xss

类似这样的事情

https://example.com/my_account/login?"><script>alert(1347)</script>

当我在浏览器中输入此网址时,它会显示警告。 怎么预防呢?

编辑:这是一个使用Struts框架的java Web应用程序......

2 个答案:

答案 0 :(得分:0)

基本上,您必须转义字符串才能阻止XSS。一个很好的指南是:

https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet

您没有提到您正在使用的服务器和/或客户端框架。但实际上,您必须转义用户提供给您的字符串,以对&lt;,&gt;进行编码。 &amp;和其他危险的字符,可以将代码注入你的HTML。大多数Web框架都具有此功能。在java中,使用owasp-esapi-java,它是:

String safe = ESAPI.encoder().encodeForHTML( request.getParameter( "input" ) );

你可以在html中输出safe。希望有所帮助。如果您使用的是特定的框架(rails,play,django,struts,jsp等),请使用该框架提出另一个关于XSS预防的问题。

答案 1 :(得分:0)

您必须确定从外部接收的内容类型,并在将其发送到任何浏览器之前对其进行适当处理。

如果你考虑它的文字,那么:

  • 如果它是作为HTML中文本的一部分输出的,那么你应该通过用正确的HTML实体替换所有必要的东西来适当地逃避<&

    < / LI>
  • 如果它作为HTML中属性的一部分输出,则同样适用加至少"'

如果你认为它是HTML,你需要选择你接受的元素(例如<b><i>等),并过滤掉其他任何内容。

如何操作取决于您使用的语言/框架。