收到“拒绝应用内联样式,因为它违反了以下内容安全策略”错误

2024-05-06

我在运行应用程序时收到以下错误

拒绝应用内联样式,因为它违反了以下内容安全策略指令:“style-src 'self'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/ https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/'sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=' 'sha256-5uIP+HBVRu0WW8ep6d6+YVfhgkl0AcIabZrBS5JJAzs='"。要么是 'unsafe-inline' 关键字,一个哈希 ('sha256-4Su6mBWzEIFnH4 pAGMOuaeBrstwJN4Z3pq/s1Kn4/KQ='),或随机数 ( 'nonce-...') 需要启用内联执行。

下面是我当前使用的代码

const string modernizrHash1 = "sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=";
            const string modernizrHash2 = "sha256-5uIP+HBVRu0WW8ep6d6+YVfhgkl0AcIabZrBS5JJAzs=";
            app.UseCsp(options => options
                .DefaultSources(s => s.Self())
                .ScriptSources(s => s.Self().CustomSources("https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/"))
                .StyleSources(s => s.Self().CustomSources("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/", modernizrHash1, modernizrHash2))
                .FontSources(s => s.Self().CustomSources("https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/fonts/"))
                .ImageSources(s => s.Self().CustomSources("data:"))
            );

哈希值4Su6mBWzEIFnH4pAGMOuaeBrstwJN4Z3pq/s1Kn4/KQ=用于CSSword-wrap: break-word; white-space: pre-wrap;,当您不提供 HTML 文档时,Chrome 会自动应用内联样式;

服务器响应示例:

Content-Type: text/plain; charset=utf-8
Content-Length: 9
Content-Security-Policy: default-src 'self'
Date: Thu, 04 Nov 2021 11:33:49 GMT

some text

Chrome 中的 DOM

<html><head></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">some text</pre></body></html>

控制台错误

拒绝应用内联样式,因为它违反了以下内容安全策略指令:“default-src 'self'” 。启用内联执行需要“unsafe-inline”关键字、哈希值(“sha256-4Su6mBWzEIFnH4pAGMOuaeBrstwJN4Z3pq/s1Kn4/KQ=”)或随机数(“nonce-...”)。请注意,除非存在“unsafe-hashes”关键字,否则哈希不适用于事件处理程序、样式属性和 javascript: 导航。另请注意,“style-src”未显式设置,因此“default-src”用作后备。```

将哈希添加到default-src or style-src不会有帮助,因为它是“内联样式”并且“哈希不适用于样式属性”。

最好的解决办法是确保您使用 CSP 标头提供正确的 HTML 文档,这样浏览器就不会用自己的样式来装饰它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

收到“拒绝应用内联样式,因为它违反了以下内容安全策略”错误 的相关文章

随机推荐