php - 如何实现内容安全策略?

标签 php security content-security-policy

有一些很好的文章解释了 CSP 的选项,例如: http://www.html5rocks.com/en/tutorials/security/content-security-policy/

也许这很明显,因为我找不到任何好的示例,但您如何在实践中实际实现 CSP?

在 PHP 中,您可以在您提供的页面上设置 header ,但是如果您只有一个 HTML 文件怎么办?你必须通过你的网络服务器、apache 或类似的东西来做吗?这似乎不是一个简单的方法。

此处的最佳做法是什么?提供的每个单独页面都应该手动设置标题吗?

谢谢!

最佳答案

归根结底,选择权在您。 您可以在您的 apache 网络服务器中全局设置它。在这种情况下,它将应用于每个页面。 如果需要更精细的方法,您还可以在各个页面上设置标题。

检查这些站点以帮助构建您的 CSP 规则:

https://csp-evaluator.withgoogle.com/

https://report-uri.io/home/generate

Scott Helme 对这个主题了解很多,也有一些很好的例子。 您也可以将报告发送到他的网站进行一些基本分析。

https://scotthelme.co.uk/content-security-policy-an-introduction/

这也可能对 apache 配置感兴趣

Generate a nonce with Apache 2.4 (for a Content Security Policy header)

我还强烈建议您阅读这篇论文,其中讨论了一些更新的(并且看起来更简单的)配置方法和浏览器向后兼容性

https://www.websec.be/blog/cspstrictdynamic/

这也是一篇优秀的论文“CSP 已死,CSP 万岁!”来自谷歌研究,特别是引用第 4 节。通过绕过白名单和传播信任来改进 CSP。

https://research.google.com/pubs/pub45542.html

做大量阅读,当您准备好实现时,使用 REPORT ONLY 模式指令,这样您就可以在不执行策略的情况下获得控制台消息。

Content-Security-Policy-Report-Only: <policy-directive>; <policy-directive>

一旦你开心了,你就可以执行规则了:

Content-Security-Policy: <policy-directive>; <policy-directive>

关于php - 如何实现内容安全策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28715989/

相关文章:

JAVA & GSSAPI : Clearing cache

content-security-policy - 内容安全策略 (CSP) - unsafe-eval 的安全使用?

javascript - node.js - 使用 Helm 的 socket.io(网络套接字)的正确内容安全策略

javascript - CSP 警告 Firebug

php - laravel 验证语法错误

php - 为什么表单输入禁用后在提交时显示空值 codeigniter

PHP OOP 访问其他类中的方法

php - 如何同时对多个表执行多个删除查询

.net - 确保 Web 服务安全

security - SharePoint 开发权限