我有一个ASP.NET web应用程序,它使用asp-validation-summary。因此,将内联style添加到页面中的HTML元素中。
这使我在运行应用程序时,控制台(Chrome v78.0.3904.108)出现了以下错误:
拒绝应用内联样式,因为它违反了以下内容安全策略指令:" style -src 'self‘https://fonts.googleapis.com“。要么是‘不安全-内联’关键字,要么是散列('sha256-aqNNdDLnnrDOnTNdkJpYlAxKVJtLt9CtFLklmInuUAE='),,要么是“不安全-.”)需要启用内联执行。
因此,我将哈希添加到我的CSP中,它现在如下所示:
style-src 'self' https://fonts.googleapis.com 'sha256-aqNNdDLnnrDOnTNdkJpYlAxKVJtLt9CtFLklmInuUAE=';当我加载页面时,仍然会出现类似的错误:
拒绝应用内联样式,因为它违反了以下内容安全策略指令:" style -src‘https://fonts.googleapis.com’https://fonts.googleapis.com要么是‘不安全-内联’关键字,要么是散列('sha256-aqNNdDLnnrDOnTNdkJpYlAxKVJtLt9CtFLklmInuUAE='),,要么是“不安全-.”)需要启用内联执行。
这是整个CSP头:
X-Content-Security-Policy: default-src 'self'; object-src 'none'; frame-ancestors 'none'; sandbox allow-forms allow-same-origin allow-scripts; base-uri 'self'; upgrade-insecure-requests; style-src 'self' https://fonts.googleapis.com 'sha256-aqNNdDLnnrDOnTNdkJpYlAxKVJtLt9CtFLklmInuUAE='; font-src 'self' https://fonts.gstatic.com;正如您所看到的,我已经添加了哈希,正如错误中所支持的那样。它似乎也是一个有效报头。
但为什么这不起作用?
发布于 2020-07-25 09:44:11
您必须添加unsafe-hashes。
unsafe-hashes允许启用特定的内联事件处理程序。如果您只需要允许内联事件处理程序,而不允许内联元素或javascript: URL,则与使用不安全内联表达式相比,这是一种更安全的方法。
来源:https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/style-src
https://stackoverflow.com/questions/59057957
复制相似问题