3

我正在使用 Symfony2 / Twig / Doctrine。

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

  1. 执着的

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

  2. 反光的

    我的理解是,任何人都可以向某人发送一封电子邮件,其中包含指向任何也注入 JavaScript 的网站的链接。那JS当然可以做任何事情。那个 JS 可以有一个登录表单提交到任何网址,你无能为力(除了希望愚蠢的人不要点击随机人的链接到我网站的登录页面)。

所以除非你能阻止 JS 被注入,那我还能做什么呢?

我不相信您可以阻止站点在另一台服务器上运行 JS 脚本(我的有效 JS 无论如何来自另一台服务器上的 CDN)并且我认为您不能阻止将 HTML 表单提交到另一台服务器.

我确实相信跨域保护确实可以防止注入的 JS 调用 Ajax 请求——但我没有对此做任何事情,我只是认为这就是现代浏览器的工作方式。

我手里还有别的东西吗?只要我做了一切可能的事情,这对我来说就足够了。

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

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

4

1 回答 1

1

Content Security Policy solves the problem of injected javascript by banning any inline javascript and validating content sources.

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

Browser support: http://caniuse.com/contentsecuritypolicy

于 2014-01-08T16:27:46.440 回答