nswdpc / silverstripe-csp
SilverStripe内容安全策略模块
Requires
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3
- phpunit/phpunit: ^9.5
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可能会对您的网站有效访客产生负面影响。
- 阅读初始文档
- 阅读注意事项部分
- 在您的网站的开发实例上安装模块,并配置它
- 在"CSP"管理部分中添加至少一个策略记录。
- 将其设置为"仅报告"
- 将其标记为"基策略"
- 可选,使其仅在草稿网站上可用
- 将策略通过HTTP头传递(您可以使用元标签,但此方法限制了您可以使用的功能)。
- 添加一些指令
- 将策略标记为"启用",保存并
- 监视违规报告或查看浏览器开发者控制台
当您对设置满意时,检查"在发布网站上使用"设置并保存。
在用户验收测试(UAT)完成后,在您的生产网站上实施相同的过程。最初,您应将策略作为报告-only运行并监控报告。
页面特定策略
默认情况下,页面可以定义一个额外的策略,在请求时使用,但需注意以下事项
添加额外的策略只能进一步限制受保护资源的功能
这意味着您不能(目前)在页面策略内部放宽基本策略限制。
使用nonce
请参阅使用nonce
值得了解
请参阅值得了解
违规报告
请参阅报告
最低CSP级别
请参考以下级别之间的更改
额外帮助
请参阅进一步阅读
浏览器兼容性
请参阅浏览器支持
维护者
错误跟踪器
我们欢迎在此项目的GitHub问题跟踪器上提交错误报告、拉取请求和功能请求。
在提交新问题之前,请先查看行为准则。
安全
如果您在此模块中发现了安全问题,请首先发送电子邮件至digital[@]dpc.nsw.gov.au,详细说明您的发现。
开发和贡献
如果您想为此模块做出贡献,请确保提出拉取请求并与模块维护者进行讨论。
在完成拉取请求之前,请先查看行为准则。