【问题标题】:XSS Basic UnderstandingXSS基本理解
【发布时间】:2013-07-19 10:46:04
【问题描述】:

我正在使用 Symfony2 / Twig / Doctrine。

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

  1. 持久性

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

  2. 反光

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

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

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

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

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

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

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

【问题讨论】:

  • xss 缺陷通常是出于疏忽。你可以做的很好,但是你没想到的一个 ajax 动作中的一个小小的缺陷可能会失败!这就是为什么人们需要付费阅读代码并分析任何缺陷。你不能总是发现你自己的代码有什么问题
  • 不要拒绝 HTML,只要确保在输出之前对所有内容进行编码即可。
  • 谢谢。那我还有什么办法吗?我可以信任 Symfony2 / Twig / Doctrine,对吗?
  • 您检查过HTML Purifier 了吗? Stack Overflow 上多次提到它,这也是我个人考虑使用它的原因。您基本上可以允许/禁止使用所需的 html 标签。

标签: php javascript symfony xss


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-04
    • 2015-02-19
    • 2010-12-29
    • 2019-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多