内容安全策略(CSP):Web Security的综合指南
内容安全策略(CSP)是一种关键的安全机制,保护网站免受内容注入攻击的攻击,主要是跨站点脚本(XSS)。 该声明性策略使开发人员能够创建一个信任资源起源的白名单,控制浏览器如何加载资源,使用内联样式和脚本,并处理动态JavaScript评估(例如,使用eval()
)。 从该白名单外部加载资源的任何尝试都被阻止。
密钥概念:
Content-Security-Policy
标题包含指令指定允许的域并限制JavaScript执行以防止注射攻击。report-uri
,,,,
和>。
对于数据URL,在指令中包括 >浏览器兼容性: > CSP 1.0享有广泛的浏览器支持,较旧的Internet Explorer版本的兼容性有限。
>用>监视违规: >示例: 违规行为(例如,从
进行测试,使用 实现CSP: ,node.js's)。>
现实世界示例: CSP级别2增强: csp级别2介绍了新指令( ,,,
>服务器计算CSP标头中包含的脚本/样式块的哈希。浏览器在执行之前验证此哈希。 结论:Content-Security-Policy
>作为未指定指令的后备。default-src
>
script-src
>指令遵循一致的模式:object-src
style-src
img-src
media-src
:指当前域。frame-src
font-src
URL列表:空间分离的URL指定允许的起源。
connect-src
default-src
:禁止给定指令的加载资源(例如,
self
none
)允许子域包含(例如,object-src 'none'
.mycdn.com`)。 每个指令都需要明确的域/子域列表;他们不继承以前的指令。data:
(例如,img-src 'data:'
)。 unsafe-inline
(对于script-src
和style-src
)允许内联<script></script>
和<style></style>
>标签,unsafe-eval
>(forscript-src
)启用动态代码评估。 两者都使用选择加入政策;省略它们会执行限制。report-uri
>
report-uri
<code>Content-Security-Policy: default-src 'self';</code>
www.google-analytics.com
report-uri
标题:Content-Security-Policy-Report-Only
。 这报告了违规行为而不会阻止资源,从而允许在不中断的情况下进行政策完善。 两个标头都可以同时使用。
Content-Security-Policy-Report-Only
通过HTTP标头设置header()
setHeader()
base-uri
child-src
form-action
>
frame-ancestors
CSP标签和内联脚本标签中都包含一个随机生成的nonce。plugin-types
基于哈希的保护:
以上是通过内容安全策略改善Web安全性的详细内容。更多信息请关注PHP中文网其他相关文章!