content-security-policy 相关问题

内容安全策略(CSP)旨在通过为开发人员提供对允许加载页面的资源以及允许执行的脚本的细粒度控制来降低跨站点脚本攻击的风险。

如何修复内容安全策略错误?

我有一个 CSP 元标记,如下所示: 我有一个 CSP 元标记,如下所示: <meta http-equiv="Content-Security-Policy" content="font-src 'self' 'unsafe-inline' data:; img-src 'self' data:; style-src 'self' 'unsafe-inline' data:; script-src 'unsafe-eval' 'unsafe-inline' data:; default-src 'self' localhost:*"> 我在 body 标签内有一个本地 JavaScript 文件引用: <script src="js/video.min.js"></script> 以及标题标记中的本地样式表文件引用: <link href="css/video-js.css" rel="stylesheet" /> 但是,我的浏览器出现以下错误,拒绝从 CSS 文件加载脚本或字体。 拒绝加载脚本“https://localhost:44356/js/video.min.js”,因为它违反了以下内容安全策略指令:“script-src 'unsafe-eval' 'unsafe-inline' data:” 。请注意,“script-src-elem”未明确设置,因此“script-src”用作后备。 2testvideo.html:1 拒绝加载字体 'data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAABDkAAsAAAAAG6gAAQAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABCAAAADsAAABUIIslek9TLzIAAAFEAAAAPgAAAFZRiV3hY21hcAAAAYQAAADaAAADPv749/pnbH lmAAACYAAAC3AAABHQZg6OcWhlYWQAAA3QAAAAKwAAADYZw251aGhlYQAADfwAAAAdAAAAJA+RCLFobXR4AAAOHAAAABBMAAACM744AAGxvY2EAAA4wAAAASAAAAEhF6kqubWF4cAAADngAAAAfAAAAIAE0AIFuYW1lAAAOMmAAAASUAAAIK1cf1oHBvc3QAAA/AAAAB JAAAAdPExYUNeJxjYGRgYOBiMGCwY2BycfMJYeDLSSzJY5BiYGGAAJA8MpsxJzM9kYEDxgPKsYBpDiBmg4gCACY7BUgAeJxjYGS7wTiBgZWBgaWQ5RkDA8MvCM0...2DDXbYkhKc+V0Bqs5Zt9JM1HQGBRTm/Eez TmZNKtpCAMs9Yu6AK9caF76zoLWIWcfMGOSkVduvSWechqZsz040Ib2PY3urxBJTzriT95lipz+TN1fmAAAAeJxtkMl2wjAMRfOAhABlKm2h80C3+ajgCKKDY6cegP59TYBzukAL+z1Zsq8ctaJTTKPrsUQLbXQQI 0EXKXroY4AbDDHCGBNMCYsZ7nCPB8yxwCOe8IwXvOIN7/ jAJ76wxHfUqWX+OzgumWAjJMV17i0Ndlr6irLKO+qftdT7i6y4uFSUvCknay+lFYZIZaQcmfH/xIFdYn98bqhra1aKTM/6lWMnyaYirx1rFUQZFBkb2zJUtoXeJCeg0WnLtHeSFc3OtrnozNw qi0TkSpBMDB1nSde5oJXW23hTS2/T0LilglXX7dmFVxLnq5U0vYATHFk3zX3BOisoQHNDFDeZnqKDy9hRNawN7Vh727hFzcJ5c8TILrKZfH7tIPxAFP0BpLeJPA==',因为它违反了以下内容安全策略指令:“font-src *”。 据我所知,第一个脚本没有违反内容安全策略,并且在我能找到的任何地方都没有任何描述“script-src-elem”的文档(这可能是一个线索)。 就 CSS 中的字体而言,浏览器中似乎存在一个错误,因为没有看起来像“font-src *”的 CSP 指令 - 所以,浏览器以某种方式覆盖了这个 CSP(或者它只是一个错误) )。 不管怎样,我一直在尝试各种组合(例如,我不能将“self”放入 script-src 中,否则会出现更多错误)。没有任何意义! 这是完整的 HTML: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta http-equiv="Content-Security-Policy" content="font-src 'self' 'unsafe-inline' data:; img-src 'self' data:; style-src 'self' 'unsafe-inline' data:; script-src 'unsafe-eval' 'unsafe-inline' data:; default-src 'self' localhost:*"> <title></title> <link href="css/video-js.css" rel="stylesheet" /> </head> <body> <video id='my-video' class='video-js' controls preload='auto' width='640' height='360' poster='/videos/Factory_Clearance30_03_16.jpg' data-setup='{}'> <source src="/videos/Factory_Clearance30_03_16.webm" type="video/webm"> <source src="/videos/Factory_Clearance30_03_16.ogv" type="video/ogg"> <source src="/videos/Factory_Clearance30_03_16.mp4" type="video/mp4"> </video> <script src="js/video.min.js"></script> </body> </html> 第一个脚本不违反内容安全策略 政策说: script-src 'unsafe-eval' 'unsafe-inline' data:; 您使用以下命令加载脚本: <script src="js/video.min.js"></script> 那么,让我们依次检查一下: 是unsafe-eval吗?不,您没有使用 eval() 或类似的东西来加载脚本。这是一个 src 属性。 是unsafe-inline吗?不,它不是内联的;这是一个 src 属性。 是data:吗?不可以。它是相对 URL,不能相对于 data: schema URL。您可能正在使用 http:。 所以它肯定确实违反了CSP。 您可能想将 'self' 添加到允许的来源。 就 CSS 中的字体而言,浏览器中似乎存在一个错误,因为没有看起来像“font-src *”的 CSP 指令 - 所以,浏览器以某种方式覆盖了这个 CSP(或者它只是一个错误) ). 对此最可能的解释是,您通过 HTTP 标头 和 <meta> 提供 CSP,并且 HTTP 标头具有优先级(因为规范要求这样做)。

回答 1 投票 0

正确使用具有内容安全策略(CSP)的哈希

我正在尝试将哈希与我的内容安全策略一起使用...... 以下是我的控制台中的两个示例错误: 拒绝执行内联脚本,因为它违反了以下内容安全策略

回答 1 投票 0

内容安全策略:拒绝加载样式表

我有一个静态网站,因此我将我的 CSP 插入到网站标题块顶部的元标记中: 我有一个静态网站,因此我将 CSP 插入网站 meta 块顶部的 head 标签中: <meta http-equiv="Content-Security-Policy" content="base-uri 'self'; default-src 'none'; img-src 'self'; font-src https://fonts.gstatic.com; manifest-src 'self'; style-src 'self' https://fonts.googleapis.com; script-src 'self'; style-src-elem 'unsafe-inline';> 假设我的网站是example.com,我在控制台中收到以下错误: Refused to load the stylesheet 'https://example.com/main.css' because it violates the following Content Security Policy directive: "style-src-elem 'unsafe-inline'". 如果我从 CSP 中删除 style-src-elem 'unsafe-inline',我就可以很好地加载我的 CSS 文件(但我收到了一个不同的错误,即未加载包含 React 似乎生成的代码的 script 标签)。我不确定为什么 CSP 规则 style-src 'self' https://fonts.googleapis.com 和 style-src-elem 'unsafe-inline' 似乎相互冲突。 我知道使用unsafe-inline并不理想,但对于没有用户交互的静态网站,我相信它很好。 当浏览器实现了对 style-src 的支持时,style-src-elem 优先于 style-src。当您仅将“unsafe-inline”定义为唯一源时,仅允许内联脚本,您无法从任何位置加载文件。当您删除 style-src-elem 时,它会回退到 style-src ,它允许从“self”(同源)加载。脚本文件问题没有足够的细节来评论。

回答 1 投票 0

新创建的 ASP.NET MVC 项目的内容安全策略问题

我通过 MVC5(MVC、WebAPI、无身份验证、未配置 HTTPS 或 Docker)创建了一个新的 Web 项目,目标框架为 4.6.1。我没有进行任何更改或修改。 我运行网络...

回答 1 投票 0

文件的内容安全策略哈希似乎不起作用

第 1 步:将 Bootstrap 4 的 SHA-384 完整性列出的 css 文件的原始副本下载到本地 Web 项目: https://getbootstrap.com/docs/4.0/getting-started/download/ 截至撰写本文时,他们已经有了自己的

回答 1 投票 0

Vite + Vue 3 构建项目内容安全策略错误(CSP)'script-src“self”',因为构建文件中存在新的 Function 构造函数

我添加了 CSP 标头 'Content-Security-Policy': "script-src 'self'",构建项目,然后出现错误: 拒绝将字符串评估为 JavaScript,因为不允许使用“unsafe-eval”...

回答 1 投票 0

Firebase 实时数据库内容安全策略错误 - script-src 'self' 'wasm-unsafe-eval' 'inline-speculation-rules'

我有一个使用 Firebase 实时数据库和身份验证的 Chrome 扩展。在chrome扩展中,一个用户有多个配置文件,这些配置文件存储在实时数据库中。我...

回答 1 投票 0

在Rails中的静态页面上实现CSP标头

作为第三方审计的一部分,我公司的 Rails 应用程序被发现没有为默认 404.html 页面(或任何其他默认静态页面)提供内容安全策略 (CSP) 标头

回答 1 投票 0

GTM 不将随机数传播到自定义 HTML 标签

为了实现内容安全策略,我需要将随机数传递给GTM以允许标签。 使用 GTM 代码片段的随机数感知版本适用于除自定义 HTML 之外的所有标记类型。 有没有办法...

回答 4 投票 0

解决 Strapi.io 内容安全策略错误

目前情况: 我有一个在默认端口 1337 上运行的 Strapi 实例。DNS 已正确设置,可以将流量从 cms.mysite.com 导航到服务器的公共 IP 地址和 IIS 网站...

回答 3 投票 0

拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src 'self'

这是我的 gatsby-plugin-csp 配置: { 解析:`gatsby-plugin-csp`, 选项: { 禁用OnDev:真, reportOnly: false, // 将标头更改为 Content-Security-Policy-R...

回答 1 投票 0

Gatsby,拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“script-src 'self'

这是我的 gatsby-plugin-csp 配置: { 解析:`gatsby-plugin-csp`, 选项: { 禁用OnDev:真, reportOnly: false, // 将标头更改为 Content-Security-Policy-R...

回答 1 投票 0

拒绝加载样式表 blob:https://url,因为它违反了 CSP 指令:style-src 'self' *.url unsafe-inline unsafe-eval,因此 style-src

屏幕方向不好我尝试了一些元标签,但它不起作用 我不明白是前端错误还是服务器端错误 屏幕方向不好我尝试了一些元标签,但它不起作用 我不明白是前端错误还是服务器端错误 首先,您似乎在元标记中添加了一项策略,而另一个策略正在限制您的内容。添加另一项政策只会使总体政策更加严格。您将需要修改现有政策以放宽限制。当您确定了它的设置方式后,您需要将“blob:”添加到 style-src。

回答 1 投票 0

Content-Security-Policy 不允许样式加载和阻止功能(Angular 13)

我有这个 Angular 应用程序(Angular 13),我用它来使用 firebase 验证电子邮件。它在本地主机(也在谷歌云平台)中工作正常,但是当我为其添加元指令时,它停止显示任何

回答 1 投票 0

apache 2 script-src 内容安全策略中的权限问题

我需要为客户实施内容安全策略。 除了 js 脚本之外,一切都运行良好。我需要允许外部 js 脚本。 我的虚拟主机 apache 中的代码: 标头设置 X-Content-Type-

回答 1 投票 0

内容安全策略指令“object-src”包含无效源:

控制台中出现以下错误。 内容安全策略指令“object-src”的源列表包含无效源:“https://*.hereapi.com'none”。它将被忽略。 下面的代码conf...

回答 1 投票 0

将 Microsoft 客户端验证与内容安全策略结合使用

我正在尝试使用 Microsoft 的客户端验证以及内容安全策略 在我的 ASP Net Core (v3.1) razor 视图中,我有以下内容: 我正在尝试使用 Microsoft 的客户端验证以及内容安全策略 在我的 ASP Net Core (v3.1) razor 视图中,我有以下内容: <div asp-validation-summary="All" class="text-danger"></div> 首次呈现页面时,我得到一个没有文本的列表项,只有红点。 HTML 已被客户端验证 javascript (jquery-validation) 更改: <div class="text-danger validation-summary-valid" data-valmsg-summary="true"> <ul> <li style="display:none"></li> </ul> </div> 我的内容安全策略(CSP)阻止内联样式,因此内联样式显示:无不起作用,因此出现红点。 我发现了不安全哈希并将我的 CSP 更改为: style-src 'self' 'unsafe-hashes' 'sha256-aqNNdDLnnrDOnTNdkJpYlAxKVJtLt9CtFLklmInuUAE='; 不幸的是,虽然这在 Chrome、Firefox 和 Edge 中有效,但在我的 iPhone (iOS 14.5) 或 Mac Mini (v11.2.3) 上的 Safari 中却不起作用 任何人都可以建议修复 Safari,或者如何更改 Microsoft 客户端验证以不使用内联样式吗? 任何人都可以建议修复 Safari Safari 不支持“不安全哈希”,也不支持style-src,也不支持script-src。目前只有一种使用“不安全哈希”的方法: style-src '不安全内联'; style-src-attr '不安全哈希' 'sha256-aqNNdDLnnrDOnTNdkJpYlAxKVJtLt9CtFLklmInuUAE='; Chrome 将遵循 style-src-attr 指令,其他浏览器(Safari/Firefox/Edge)不支持它,并将使用“style-src”中的“unsafe-inline”。 如何更改 Microsoft 客户端验证以不使用内联样式? style="display:none"是由jQuery验证器通过.attr()方法添加的,该方法在内部调用setAttribute("style", ...)。 CSP 将 setAttribute(style) 调用视为内联样式,而 element.style.property = 'prop_value' 不被视为 内联样式。 因此,任务是将 setAttribute("style") 调用更改为一组等效的 element.style.property 调用。 jQuery 有一个特殊的 plugin,可以通过将 .attr() 方法替换为安全的 el.style.property 调用来修复内联样式。 或者,您可以使用粗略的 hack 以相同的方式修复任何 JS 库。 这是一个已知问题。 aspnetcore/问题/43714 标记帮助程序 asp-validation-summary="All" 呈现此: <div class="text-danger validation-summary-valid" data-valmsg-summary="true"> <ul> <li style="display:none"> @*CSP problem*@ </li> </ul> </div> 解决方法:仅当有内容要显示时才使用标签助手。 @if (ViewData.ModelState.ErrorCount > 0) { <div asp-validation-summary="All" class="text-danger"></div> } 我需要更新一个已有 10 年历史的网站以提高安全性。我没有参与该网站的创建,它广泛使用了 mvc 验证,所以我需要一个轻量级的解决方案......即使它有点 hacky。 为了安抚 CSP,我简单地从返回的 html 中删除了样式文本: public static MvcHtmlString ValidationSummaryCSP( this HtmlHelper htmlHelper, bool excludePropertyErrors = false) { var helper = htmlHelper.ValidationSummary(excludePropertyErrors); var retVal = new Regex("style=\"[^\"]*\"").Replace(helper.ToHtmlString(), ""); return MvcHtmlString.Create(retVal); }

回答 3 投票 0

如何将 X-Frame-Options: DENY 添加到 Angular azure 应用程序服务器?

如何以及在何处将“X-Frame-Options:DENY”添加到我们的网络应用程序服务中? 我们正在使用 azure 应用程序服务(基于 Linux),前端是使用 Angular 13+ 构建的 如何以及在何处实施“X-

回答 1 投票 0

请注意,“frame-src”未明确设置,因此“default-src”用作后备

我尝试添加frame-scr,因为它说“请注意,'frame-src'未明确设置”: 这是我尝试添加的内容: 框架-src'自我'; frame-src“自身”数据:; 框架-src http://example...

回答 1 投票 0

收到不存在内容安全策略标头的内容安全策略错误

我正在与第三方库(Chargebee)集成,并且收到内容安全违规错误。 据我所知,我的网页中没有定义 CSP,因为它不返回 CSP

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.