Magento 2.4.5-p1 网站中存在多项内容安全策略 (CSP) 违规行为。如何解决?

问题描述 投票:0回答:1

几周前,我注意到我们公司的网站(运行 Magento 2.4.5-p1)在浏览器控制台中抛出几个 CSP 错误。由于我不是 Web 开发人员,我对编码的理解非常有限,并且没有找到任何与 Magento 2 相关的关于此问题的文章。

在研究过程中,我遇到了一家名为 Csper 的公司,并使用他们的免费 CSP 策略评估器获得了有关错误的更详细信息。该报告提到,我们的政策使用了脚本“unsafe-inline”和“unsafe-eval”,他们建议不要使用这些脚本,因为它们会使网站容易受到 XSS 攻击。

因此,Csper 的部分建议是删除这些脚本,但同时他们警告这可能需要重构代码。这是我的问题:我想知道我们的 CSP 是否是默认的 Magento 2 脚本,以及更改它是否会破坏某些内容。如果这是真的,默认的 Magento 脚本如何使网站容易受到 XSS 攻击?

更重要的是,我该如何解决它?我们目前使用 Google Analytics、Google Tag Manager 和 Facebook Ads 作为外部服务。

任何帮助将不胜感激。感谢您的宝贵时间。

更新:

我将附加错误之一以获取有关该问题的更多详细信息:

[Report Only] Refused to load the stylesheet 'https://fonts.googleapis.com/css?family=Open+Sans' because it violates the following Content Security Policy directive: "style-src *.adobe.com *.sagepay.com *.fontawesome.com unsafe-inline *.trustpilot.com tagmanager.google.com 'self' 'unsafe-inline'". Note that 'style-src-elem' was not explicitly set, so 'style-src' is used as a fallback.
content-security-policy magento2.4
1个回答
2
投票

您可以在etc文件夹中创建csp_whitelist.xml文件,即

app/code/Vendorname/Modulename/etc/csp_whitelist.xml

您可以通过将 csp_whitelist.xml 添加到自定义模块的 etc 文件夹,将域添加到 script-src、style-src、font-src 等策略的白名单中。

<? 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="script-src">
         <values>
             <value id="uniqueId" type="host">example.com</value>
             <value id="uniqueId" type="host">accounts.google.com</value>
          </values>
       </policy>
 </policies>
</csp_whitelist>

这在 docs

中或多或少有过度描述
© www.soinside.com 2019 - 2024. All rights reserved.