dnadesign/silverstripe-securityheaders

启用内容安全策略(CSP)设置

1.1 2022-10-17 00:06 UTC

This package is not auto-updated.

Last update: 2024-09-10 09:20:25 UTC


README

为Silverstripe v4提供的安全头模块。启用设置内容安全策略(CSP)。

设置CSP规则

您应该在您的yml文件中设置自己的规则。下面只是一个基本的用法示例。

基本用法

DNADesign\SecurityHeaders\SecurityHeadersExtension:
# Add exceptions per page type - Optional
  exceptions:
    - PageType
  headers:
    - ...
  x_headers_map:
    - ...
  whitelist:
    - ...

将适当的规则添加到您的本地 _config/.yml 文件中

# CSP extended e.g
DNADesign\SecurityHeaders\SecurityHeadersExtension:
  headers:
    Strict-Transport-Security: 'max-age=31536000; includeSubDomains'
    X-Frame-Options: 'SAMEORIGIN'
    Access-Control-Allow-Origin: 'self'
    X-Content-Type-Options: nosniff
    x-xss-protection: 1; mode=block
    Referrer-Policy: strict-origin-when-cross-origin
    Content-Security-Policy: whitelist
  x_headers_map:
    Content-Security-Policy:
      - X-Content-Security-Policy
      - X-WebKit-CSP
    Frame-Options:
      - X-Frame-Options
  whitelist:
    default-src:
      data:
        - '''none'''
    script-src:
      data:
        - '''self'''
        - '''unsafe-inline'''
        - '''unsafe-eval'''
    style-src:
      data:
        - '''self'''
        - '''unsafe-inline'''
    font-src:
      data:
        - '''self'''
    img-src:
      data:
        - '''self'''
        - 'data:'
        - 'https://www.google.com'
    form-action:
      data:
        - '''self'''
    manifest-src:
      data:
        - '''self'''
    frame-src:
      data:
        - 'https://www.google.com'
    frame-ancestors:
      data:
        - '''self'''
    connect-src:
      data:
        - '''self'''
        - 'https://www.google.com'
    base-uri:
      data:
        - '''self'''

测试

您可以使用CSP EvaluatorCaspr:Enforcer测试您的CSP规则

参考资料

此模块基于guttmann/silverstripe-security-headers

CSP文档

免责声明

我不是安全专家 - 此模块中没有使用任何默认的头规则,您应该进行自己的研究,看看上面的示例中是否有适合您需求的内容。

请发送给我任何发现的问题或可以改进的地方的pull request。