我不担心其他类型的攻击。我只想知道HTML编码是否可以防止各种XSS攻击。
即使使用HTML编码,也有办法进行XSS攻击吗?
发布于 2008-09-10 10:16:14
如果你对所有东西都进行编码,它就会。(取决于您的平台和htmlencode的实现),但任何有用的web应用程序都是如此复杂,以至于很容易忘记检查它的每个部分。或者可能是第三方组件不安全。也可能是你认为编码的某个代码路径没有做到这一点,所以你把它忘在别的地方了。
所以你可能也想检查输入端的东西。您可能想要检查从数据库中读取的内容。
发布于 2008-09-11 19:40:39
我赞同metavida的建议,即寻找第三方库来处理输出过滤。中和HTML字符是阻止XSS攻击的好方法。但是,用于转换元字符的代码很容易受到规避攻击;例如,如果它没有正确处理Unicode和国际化。
自制输出过滤器的一个典型的简单错误是只捕获<和>,但是遗漏了像“这样的内容,这可以将用户控制的输出分解到HTML标记的属性空间中,在HTML标记中可以将Javascript附加到DOM。
发布于 2008-09-18 16:19:15
不,仅仅编码普通的HTML令牌并不能完全保护您的站点免受XSS攻击。例如,请参阅在google.com中找到的这个XSS漏洞:
http://www.securiteam.com/securitynews/6Z00L0AEUE.html
这类漏洞的重要之处在于,攻击者能够使用UTF-7对其XSS有效负载进行编码,如果您没有在页面上指定不同的字符编码,则用户的浏览器可以解释UTF-7有效负载并执行攻击脚本。
https://stackoverflow.com/questions/53728
复制相似问题