basecom / magento2-csp-split-header
将过大的内容安全策略(CSP)头部拆分成多个头部的 Magento 2 模块。
Requires
- php: ~8.1
- magento/framework: *
- magento/module-backend: *
- magento/module-config: *
- magento/module-csp: *
README
重要
从 Magento 2.4.7 版本开始,无法再禁用 Magento CSP 模块。
随着内容安全策略(CSP)白名单的不断增长,可能会出现问题,即头部 Content-Security-Policy-Report-Only
和/或 Content-Security-Policy
变得非常大,以至于超过了头部字段的允许最大大小,导致 Web 服务器无法进一步处理响应。
CSP 机制允许为资源指定多个策略,包括通过 Content-Security-Policy
头部、Content-Security-Policy-Report-Only
头部和 meta
元素 [MDN]。因此,头部可以指定多次。
模块在这里发挥作用。它实现了对方法 Magento\Csp\Model\Policy\Renderer\SimplePolicyHeaderRenderer::render
的 after 方法插件,该方法通过方法 \Magento\Framework\App\Response\HttpInterface::setHeader
替换现有的 CSP 头部。读取头部,将其拆分以保持语法有效,并用新头部替换。结果是每个指令都有单独的头部,每个头部都不应超过 Web 服务器允许的最大长度。
提示
如果即使拆分后头部仍然太大,请尝试识别不必要的 Magento 模块并删除它们。
安装
-
使用 composer 将其安装到您的 Magento 2 项目中
composer require basecom/magento2-csp-split-header
-
启用模块
bin/magento setup:upgrade
配置
这些值可以在系统配置的以下位置更新: Basecom -> 内容安全策略 -> 启用
。
示例
-
CSP 拆分 禁用
Content-Security-Policy: default-src 'self' https://example.com; connect-src 'none'; script-src https://example.com/;
-
CSP 拆分 启用
Content-Security-Policy: default-src 'self' https://example.com; Content-Security-Policy: connect-src 'none'; Content-Security-Policy: script-src https://example.com/;
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全
如果您发现任何与安全相关的问题,请通过电子邮件 magento@basecom.de 而不是使用问题跟踪器。
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。
版权
© 2024 basecom GmbH & Co. KG