内容安全策略 1.0 在 Firefox Aurora 中发布

本文的信息基于与 Ian Melven、Kailas Patil 和 Tanvi Vyas 的合作。.

我们刚刚在 内容安全策略 (CSP) 1.0
规范
中加入了对 Firefox Aurora(Firefox 23)的支持,从明天(5 月 30 日)开始提供。CSP 是一种安全机制,旨在通过提供已知安全域名的白名单来保护网站免受内容注入攻击,从而接受来自这些域名的 JavaScript(和其他内容)。CSP 通过在它保护的文档中发送 Content-Security-Policy 标头来实现这一点(是的,我们在 1.0 版本的规范中丢掉了 X 前缀)。

为了有效地防止 XSS 攻击,一些 JavaScript 功能必须
被禁用

  • 所有内联 JavaScript 代码都被禁止。这意味着所有 JavaScript 代码必须放置在一个单独的文件中,并通过 <script src=... > 连接
  • 所有允许从字符串执行 JavaScript 代码的函数调用(例如,eval)都被禁用

CSP 现在更加直观和一致

虽然 Firefox 从在 Mozilla 发明 CSP 以来就一直在支持 CSP,但事情一直在发生变化。在 W3C 中对规范的简化开发使得这个概念更加直观和一致。CSP 标头中的大多数指令现在都是统一的形式,明确指定了要限制的内容类型

  • img-src
  • object-src
  • script-src
  • style-src 等等。

哦,如果你觉得必须允许不太安全的 JavaScript 编码风格,你可以将 unsafe-inlineunsafe-eval 值添加到你的脚本源列表中。(之前分别是 inline-script 和 eval-script)。

现在就开始实施 CSP,保护你的网站吧!

但是等等,这会不会有点繁琐......编写复杂的策略,并确保你记得网站需要的所有资源?别担心!UserCSP 又回来了!

使用 UserCSP 生成内容安全策略!

在过去的几个月里,我们 安全指导计划 的学生 Kailas Patil 继续他去年的 GSoC 工作 来更新 UserCSP

UserCSP 是一款 Firefox 扩展,帮助 Web 开发人员和注重安全的用户使用 CSP。Web 开发人员可以使用 UserCSP 的推断 CSP 功能为他们的网站创建内容安全策略 (CSP)。此功能可以列出所需的资源 URL,并将其转换为可以插入 CSP 标头的策略。

此外,UserCSP 是将策略执行机制直接暴露给 Web 用户的第一步。此外,用户可以通过该扩展程序强制执行比页面提供的更严格的策略,或者将策略应用于当前不支持 CSP 的某些网站。

虽然早期的 UserCSP 版本更多地与最初在 Mozilla 发明的內容安全策略相一致,但此版本已更新以符合 CSP 1.0 规范。这意味着,一旦浏览器支持该规范,使用此扩展程序生成的策略就可以在所有浏览器中使用。万岁!

随着这项技术的发展和发布,我们 关于内容安全策略 (CSP) 的 MDN 文档 将继续演进,我们也计划在接下来的几周内在 Mozilla 安全博客 上发布更多关于这方面的文章,敬请关注!

关于 Frederik Braun

Frederik Braun 作为柏林的员工安全工程师为 Mozilla Firefox 保驾护航。他也是 W3C Web 应用程序安全工作组的成员,并共同撰写了 Subresource Integrity 标准。

Frederik Braun 的更多文章......

关于 Robert Nyman [荣誉编辑]

Mozilla Hacks 的技术布道者和编辑。发表关于 HTML5、JavaScript 和开放网络的演讲和博客文章。Robert 坚信 HTML5 和开放网络,自 1999 年以来一直在从事 Web 前端开发工作 - 在瑞典和纽约市。他经常在 http://robertnyman.com 上发表博客文章,并喜欢旅行和结识新朋友。

Robert Nyman [荣誉编辑] 的更多文章......


8条评论

  1. Dmitry

    你好!
    我有一些关于新的开源免费项目的想法。
    我不是开发人员 :( 无法实现它,但其他人可以(JS 开发)。
    我可以在哪里向开发者展示它?

    2013 年 5 月 29 日 下午 6:32

    1. Robert Nyman [编辑]

      尝试任何在线 Web 开发人员或企业家论坛。

      2013 年 5 月 29 日 下午 11:42

      1. Robert Nyman [编辑]

        Dmitry,

        我看到你在这篇博文中发布了许多关于职位描述等的评论。请不要这样做,这里是为了讨论这个特定主题。你需要去其他地方寻找 Web 开发人员的通用论坛,在那里你可以讨论这个问题。

        2013 年 5 月 30 日 上午 4:38

  2. Dmitry

    Mozilla 社区开发者有自己的论坛吗?

    2013 年 5 月 30 日 上午 5:14

    1. Robert Nyman [编辑]

      我们有 这些邮件列表,但如果你正在寻找感兴趣的开发者,你也可以查看其他频道。

      2013 年 5 月 30 日 下午 1:10

      1. Dmitry

        谢谢,我已经发送了。

        2013 年 5 月 30 日 下午 2:34

      2. Dmitry

        正在被保留,直到列表主持人可以审核它以供批准。

        它被保留的原因是

        非会员发帖到仅限会员的列表

        要么信息将被发布到列表中,要么你会收到
        主持人决定的通知。如果你想取消
        此发布,请访问以下 URL

        :(

        2013 年 5 月 30 日 下午 3:21

  3. Mathew Porter

    我会关注 MDN 文档中关于内容安全策略的页面上的这个内容,并看看测试,听起来这是一个很棒的安全工具

    2013 年 6 月 5 日 上午 11:58

本文的评论已关闭。