cloudgrayau / csp
Craft CMS 的内容安全策略管理器
1.3.0
2024-09-17 12:25 UTC
Requires
- php: ^8.0|^8.2
- cloudgrayau/utils: ^1.1
- craftcms/cms: ^4.0|^5.0
README
Craft CMS 的内容安全策略管理器。
要求
此插件需要 Craft CMS 4.0.0 或更高版本。
安装
composer require cloudgrayau/csp
CSP 概述
CSP 是 Craft CMS 的内容安全策略和 HTTP 标头响应管理器。
SEOmatic 兼容性
此插件与 SEOmatic 插件设置(常规)中“自动渲染启用”生成的任何非ces 100% 兼容。为确保兼容性,请在 SEOmatic 插件设置(标签)中将“<script> 标签的非ces”设置为“响应头”。
请注意;SEOmatic 内设置的任何“script-src” CSP 标签也将被应用。SEOMatic 应用的“Content-Security-Policy” HTTP 响应头将自动覆盖或删除。
Blitz 兼容性
为确保内容安全策略在启用 Blitz 缓存的情况下保持兼容,请确保在“CSP 设置(设置)”中将“CSP 模式”设置为“元标签”。
设置
可以通过“Craft CMS 设置”或使用提供的“config/csp.php”文件来配置此插件。您可以在模板中配置额外的非ces,如下所示
{# HTML #} <script src="url/of/script.js" nonce="{{ csp('script-src') }}"></script> <link href="url/of/style.css" rel="stylesheet" nonce="{{ csp('style-src') }}" /> {# CSS Twig tags #} {% do view.registerCssFile(url('scss/styles.scss'), { nonce: csp('style-src') }) %} {% do view.registerCss('<body>background:red;</body>', { nonce: csp('style-src') }) %} {# JS Twig tags #} {% do view.registerJsFile(url('js/site.js'), { nonce: csp('script-src') }) %}
覆盖配置
可以通过您的模板使用 twig 实时更新 CSP 配置。例如,这可以用于禁用 XHR 请求上的 CSP。
{% do craft.csp.config({'cspEnabled': false}) %}
由 Cloud Gray Pty Ltd 提供