nswdpc/silverstripe-csp

SilverStripe内容安全策略模块

安装次数: 9,048

依赖项: 1

建议者: 1

安全: 0

星标: 7

关注者: 5

分支: 3

公开问题: 4

类型:silverstripe-vendormodule

v1.0.0 2024-03-28 03:38 UTC

README

内容安全策略(CSP)是额外的安全层,有助于检测和缓解某些类型的攻击,包括跨站脚本(XSS)和数据注入攻击。这些攻击被用于从数据窃取到网站篡改以及恶意软件传播等。

来源: https://mdn.org.cn/en-US/docs/Web/HTTP/CSP

此模块提供以下功能

  • 在网站管理区域创建一个或多个CSP记录,并将其中之一作为网站使用的基策略
  • 将CSP记录设置为仅报告
  • 通过控制器或特定URL/服务收集内部CSP违规报告
  • 添加针对特定页面的CSP记录,这些记录与基策略一起使用或单独使用
  • 添加针对每个请求的nonce

一旦CSP实施并生效,任何不符合策略要求的资源加载将被阻止,并在浏览器开发者控制台显示类似以下警告

拒绝加载脚本 'https://badactor.example.com/eval.js',因为它违反了以下内容安全策略指令:"script-src 'self' 'nonce-example' https://cdnjs.cloudflare.com/"。

版本控制

对于Silverstripe 5.x,使用版本约束^1

对于Silverstripe 4.x,使用版本约束^0.4.3

安装

安装此模块的唯一支持方法是通过composer

composer require nswdpc/silverstripe-csp

说明

⚠️ 实施不当的CSP可能会对您的网站有效访客产生负面影响。

  1. 阅读初始文档
  2. 阅读注意事项部分
  3. 在您的网站的开发实例上安装模块,并配置它
  4. 在"CSP"管理部分中添加至少一个策略记录。
    • 将其设置为"仅报告"
    • 将其标记为"基策略"
    • 可选,使其仅在草稿网站上可用
  5. 将策略通过HTTP头传递(您可以使用元标签,但此方法限制了您可以使用的功能)。
  6. 添加一些指令
  7. 将策略标记为"启用",保存并
  8. 监视违规报告或查看浏览器开发者控制台

当您对设置满意时,检查"在发布网站上使用"设置并保存。

在用户验收测试(UAT)完成后,在您的生产网站上实施相同的过程。最初,您应将策略作为报告-only运行并监控报告。

页面特定策略

默认情况下,页面可以定义一个额外的策略,在请求时使用,但需注意以下事项

添加额外的策略只能进一步限制受保护资源的功能

MDN为此过程提供了有用的信息:

这意味着您不能(目前)在页面策略内部放宽基本策略限制。

使用nonce

请参阅使用nonce

值得了解

请参阅值得了解

违规报告

请参阅报告

最低CSP级别

请参考以下级别之间的更改

额外帮助

请参阅进一步阅读

浏览器兼容性

请参阅浏览器支持

维护者

错误跟踪器

我们欢迎在此项目的GitHub问题跟踪器上提交错误报告、拉取请求和功能请求。

在提交新问题之前,请先查看行为准则

安全

如果您在此模块中发现了安全问题,请首先发送电子邮件至digital[@]dpc.nsw.gov.au,详细说明您的发现。

开发和贡献

如果您想为此模块做出贡献,请确保提出拉取请求并与模块维护者进行讨论。

在完成拉取请求之前,请先查看行为准则