我正在使用Symfony2 / Twig / Doctrine。
我正在查看我网站上的安全性,特别是防止XSS攻击,但我看不出还能做些什么。
持久性
我使用Doctrine并始终确保我确保用户输入安全,拒绝HTML,网址和电子邮件地址等(如果适用,例如评论框)。我也使用Twig(我相信逃脱输出)。
反光
我的理解是,任何人都可以向某人发送电子邮件,其中包含指向任何注入JavaScript的网站的链接。 JS当然可以做任何事情。 JS可以将登录表单提交到任何Web地址,并且您无法做任何事情(除了希望愚蠢的人不会点击随机人员到我网站登录页面的链接)。
因此,除非您可以阻止JS注入,否则我还能做些什么?
我不相信你可以阻止一个站点在另一台服务器上运行JS脚本(我的有效JS来自另一台服务器上的CDN)我不认为你可以阻止提交HTML表单到另一台服务器。
我确实认为跨域保护确实阻止了注入的JS调用Ajax请求 - 但我没有做过任何关于此的事情,我只是认为这就是现代浏览器的工作方式。
我手中还有其他东西吗?只要我做了其他可能的东西,这对我来说就足够了。
我想我想知道为什么当一些人靠XSS保护建议谋生时,我无能为力。也许是因为我使用Symfony2 / Twig / Doctrine?
寻求帮助以澄清我的理解。
答案 0 :(得分:1)
内容安全策略通过禁止任何内联JavaScript和验证内容源来解决注入javascript的问题。
信息:https://developer.mozilla.org/en-US/docs/Security/CSP/Using_Content_Security_Policy