XSS基本理解

时间:2013-07-20 02:36:05

标签: php javascript symfony xss

我正在使用Symfony2 / Twig / Doctrine。

我正在查看我网站上的安全性,特别是防止XSS攻击,但我看不出还能做些什么。

  1. 持久性

    我使用Doctrine并始终确保我确保用户输入安全,拒绝HTML,网址和电子邮件地址等(如果适用,例如评论框)。我也使用Twig(我相信逃脱输出)。

  2. 反光

    我的理解是,任何人都可以向某人发送电子邮件,其中包含指向任何注入JavaScript的网站的链接。 JS当然可以做任何事情。 JS可以将登录表单提交到任何Web地址,并且您无法做任何事情(除了希望愚蠢的人不会点击随机人员到我网站登录页面的链接)。

  3. 因此,除非您可以阻止JS注入,否则我还能做些什么?

    我不相信你可以阻止一个站点在另一台服务器上运行JS脚本(我的有效JS来自另一台服务器上的CDN)我不认为你可以阻止提交HTML表单到另一台服务器。

    我确实认为跨域保护确实阻止了注入的JS调用Ajax请求 - 但我没有做过任何关于此的事情,我只是认为这就是现代浏览器的工作方式。

    我手中还有其他东西吗?只要我做了其他可能的东西,这对我来说就足够了。

    我想我想知道为什么当一些人靠XSS保护建议谋生时,我无能为力。也许是因为我使用Symfony2 / Twig / Doctrine?

    寻求帮助以澄清我的理解。

1 个答案:

答案 0 :(得分:1)

内容安全策略通过禁止任何内联JavaScript和验证内容源来解决注入javascript的问题。

信息:https://developer.mozilla.org/en-US/docs/Security/CSP/Using_Content_Security_Policy

浏览器支持:http://caniuse.com/contentsecuritypolicy