experius/module-csp

提供基本的内容安全策略允许列表和报告被阻止的资源。

安装:64,814

依赖项: 0

建议者: 0

安全: 0

星标: 35

关注者: 7

分支: 13

开放问题: 5

类型:magento2-module

2.0.3 2022-04-15 10:29 UTC

README

experius/module-csp

安装

在生产环境中,请使用--keep-generated选项

  • 通过运行composer require experius/module-csp安装模块
  • 通过运行php bin/magento module:enable Experius_Csp启用模块
  • 通过运行php bin/magento setup:upgrade应用数据库更新
  • 通过运行php bin/magento cache:flush刷新缓存

主要功能

提供基本的内容安全策略允许列表(白名单),当资源被阻止时,它将自动在Experius CSP报告表(experius_csp_report)中报告。

当发现阻止指令的报告时,将在管理后台显示错误消息以通知开发者/客户。

这些报告可以为允许此指令的指令进行白名单处理。有关示例和更多详细信息,请参阅下文“内容安全策略报告和白名单”。

重要:内容安全策略报告仅模式

在即将到来的Magento 2.4版本中,内容安全策略报告仅模式将被禁用,并将进行严格验证。

由于不正常工作,已禁用此版本的report-to。请参阅:\Experius\Csp\Plugin\Magento\Framework\App\Response\HttpInterface::beforeSetHeader

基本允许列表

目前,此模块包含一个基本的白名单,考虑为“安全”来源。

一些示例

  • Google Fonts
  • Google Maps
  • Dotdigital / Dotmailer Chat
  • Buckaroo
  • 等。

有关每个指令的完整列表,请查看以下文件

etc/csp_whitelist.xml

内容安全策略报告和白名单

在Magento管理后台中可以查看创建的报告。

System > Tools > CSP reporting & whitelist

Scheme

为了避免杂乱,引入了一个计数器,该计数器可以防止在许多页面浏览时表的大小过度增长。这是根据“违反的指令”、“阻止的URI”和“文档URI”进行分组的。

@TODO:[期望]考虑让“document_uri”消失,因为白名单适用于整个Magento安装(全局)。

永久地将资源添加到允许列表中

基于报告,您可以轻松地将csp_whitelist.xml文件添加到自己的模块中,完成操作后,只需删除记录即可,因为它们不再相关。有关此XML文件如何工作的更多信息,请在此处查找

https://devdocs.magento.com/guides/v2.3/extension-dev-guide/security/content-security-policies.html

例如报告

修复

# app/code/Custom/Csp/etc/csp_whitelist
<?xml version="1.0"?>
<csp_whitelist xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Csp:etc/csp_whitelist.xsd">
    <policies>
        <policy id="img-src">
            <values>
                <value id="gstatic" type="host">*.gstatic.com</value>
            </values>
        </policy>
    </policies>
</csp_whitelist>