.net core 获得;拒绝应用内联样式,因为它违反了以下内容安全策略;错误
我在运行应用程序时遇到以下错误 拒绝应用内联样式,因为它违反了以下内容安全策略指令:“样式src'self”“sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=”“sha256-5uIP+HBVRu0WW8ep6d6+YVfhgkl0AcIabZrBS5JJAzs=”。启用内联执行需要'unsafe inline'关键字、哈希('sha256-4Su6mBWzEIFnH4pAGMOuaeBrstwJN4Z3pq/s1Kn4/KQ=')或nonce('nonce-…') 下面是我目前使用的代码.net core 获得;拒绝应用内联样式,因为它违反了以下内容安全策略;错误,.net-core,.net Core,我在运行应用程序时遇到以下错误 拒绝应用内联样式,因为它违反了以下内容安全策略指令:“样式src'self”“sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=”“sha256-5uIP+HBVRu0WW8ep6d6+YVfhgkl0AcIabZrBS5JJAzs=”。启用内联执行需要'unsafe inline'关键字、哈希('sha256-4Su6mBWzEIFnH4pAGMOuaeBrstwJN4Z3pq/s1Kn4/KQ=')或nonc
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:"))
);
出现此错误是因为根据您的内容安全策略和返回的错误,不允许使用内联样式(可以散列到sha256-4Su6mBWzEIFnH4pAGMOuaeBrstwJN4Z3pq/s1Kn4/KQ=) 我建议采取两种可能的步骤:
- 远离内联样式(因为它们可能不安全),并要求您在每次内联样式更改时更改CSP
- 将提供的SHA添加到CSP的样式源中。但请注意,必须为应用程序中所有页面中添加的每个内联样式维护和更新此功能
我已经通过更改浏览器控制台错误中显示的哈希键解决了这个问题,我用代码哈希键替换了控制台错误哈希键,但不确定这是否是永久解决方案 这并不是一个永久的解决办法。如果(以及当)内联样式发生更改,则必须更改CSP中的哈希,以便再次应用样式 这让我想到: 你能告诉我哈希键是如何生成的,以及我如何永久地修复这个问题吗 查看原始问题中的代码:
const string modernizerhash1=“sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=”;
const string modernizerhash2=“sha256-5uIP+HBVRu0WW8ep6d6+YVfhgkl0AcIabZrBS5JJAzs=”;
//其他事情
.StyleSources(s=>s.Self().CustomSources(“https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/“,现代化(1,现代化(2))
您正在告诉浏览器(通过您正在生成的内容安全策略)仅允许从以下位置加载样式:
- self(站点的源域)
- sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=
- sha256-5uIP+HBVRu0WW8ep6d6+YVfhgkl0AcIabZrBS5JJAzs=
- sha256-4Su6mBWzEIFnH4pAGMOuaeBrstwJN4Z3pq/s1Kn4/KQ=
self
规则将涵盖它
CSP是一个非常复杂的话题(但一旦你学会了基本知识,就很容易掌握)。我建议您查看,以了解有关其工作原理以及如何使用它来保护web应用程序的更多信息。您会遇到此错误,因为不允许使用内联样式(可以散列到sha256-4Su6mBWzEIFnH4pAGMOuaeBrstwJN4Z3pq/s1Kn4/KQ=),根据您的内容安全策略和返回的错误 我建议采取两种可能的步骤:
- 远离内联样式(因为它们可能不安全),并要求您在每次内联样式更改时更改CSP
- 将提供的SHA添加到CSP的样式源中。但请注意,必须为应用程序中所有页面中添加的每个内联样式维护和更新此功能