首页 > 解决方案 > 内容安全策略导致 CSS 消失

问题描述

如果我向我的应用程序添加内容安全策略标头,CSS 将停止工作并且启动页面无法正确显示,包括图像丢失。删除内容安全策略标头可使页面正确显示。没有收到错误 - 页面根本无法正确显示。

如果我只是添加具有任何值的 default-src 的 Content Security Policy 标头 - 包括 * - 应用程序将不再使用 CSS。我已经尝试了 default-src 的所有可能值,并且我也尝试过包含 style-src 的值。

这是相关的 web.config 部分。我尝试了许多不同的值,但这个最新的值理论上应该不会阻止任何东西......

  <system.webServer>
    <httpProtocol>
      <customHeaders>
        <add name="Content-Security-Policy" value="default-src 'self' 'unsafe-eval' 'unsafe-inline' https://*.MYDOMAIN; script-src 'self' 'unsafe-eval' 'unsafe-inline' https://*.MYDOMAIN; style-src 'self' 'unsafe-inline' https://*.MYDOMAIN; img-src 'self'  https://*.MYDOMAIN; connect-src 'self' https://*.MYDOMAIN; font-src 'self' https://*.MYDOMAIN; object-src 'self' https://*.MYDOMAIN; media-src 'self' https://*.MYDOMAIN; child-src 'self' https://*.MYDOMAIN; form-action 'self' https://*.MYDOMAIN; frame-ancestors 'self'" />
      </customHeaders>
    </httpProtocol>
  </system.webServer>

DevTools 不会报告任何错误,除了在没有 CSP 的情况下发生的错误,以及在应用程序正常运行时也会发生的错误。因此,CSP 不会引入任何不同于正常操作的新错误或消息。

我希望内容安全策略对 CSS 没有影响。

标签: csscontent-security-policy

解决方案


推荐阅读