【发布时间】:2009-05-26 04:32:31
【问题描述】:
即使是像 Twitter 这样的知名网站也存在 XSS 漏洞,我们应该如何防止这种攻击?
【问题讨论】:
标签: xss
即使是像 Twitter 这样的知名网站也存在 XSS 漏洞,我们应该如何防止这种攻击?
【问题讨论】:
标签: xss
您可以做的第一件事是将您的 cookie 设置为仅 HTTP ......这至少可以防止会话 cookie 劫持。就像有人在您可能是自己网站的管理员时窃取了您的 cookie。
剩下的就是验证所有用户输入。
这里详细讨论了非常冗长的主题:
http://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
http://www.owasp.org/index.php/Cross_site_scripting
XSS 只是众多漏洞利用之一,每个 Web 开发人员都应该牢记前 10 名 OWASP,恕我直言
【讨论】:
就像您可以通过使用准备好的语句使 SQL 注入成为非问题一样,您可以通过使用执行类似操作的模板引擎(DOM 序列化程序)使 XSS 非问题。
设计您的应用程序,以便所有输出都通过模板引擎。使模板引擎默认对所有数据进行 HTML 转义。这样,您将拥有默认安全的系统,并且不依赖人类(以及大型系统的其余部分)勤奋地转义 HTML。
【讨论】:
我不知道你用什么来写你的代码,但是如果你使用 asp.net,你会被部分覆盖。 asp.net 具有他们所谓的请求验证功能,启用后,它可以防止通过用户输入引入恶意脚本。
但有时,您必须允许使用某种文本编辑器,例如您在此问题中键入的那种。在这种情况下,您必须部分禁用请求验证以允许最终用户输入一些“富文本”html。在这种情况下,您将不得不构建某种白名单过滤机制。
仅供参考,我不知道其他人,但 Microsft 有一个名为 Anti-Xss 的库。
【讨论】: