content-security-policy 相关问题

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

将 Twitter 时间轴嵌入 github 页面上的 al-folio 网站

我正在使用 al-folio 模板构建一个个人网站,我将在 github 页面上托管该网站。 我想嵌入我的 Twitter 时间线。 如果我访问 https://publish.twitter.com/,并输入 https://

回答 1 投票 0

有没有办法一次性生成所有内容安全策略内联哈希值? (Wordpress)

我正在根据集成本地银行支付网关的要求为 WordPress 网站制定内容安全策略。遗憾的是,很多内联脚本都是 WordPress 的一部分,它是插件......

回答 2 投票 0

内容安全策略 (CSP) - onetrust 集成期间动态内联样式的问题

我正在集成一个cookie工具-onetrust。我通过在 html 页面中添加脚本来添加它们。这些脚本调用其他脚本并创建内联样式。我设法通过添加“

回答 1 投票 0

内容安全策略阻止 Angular 样式

我想发布一个具有严格内容安全策略的 Web 应用程序。最后剩下的问题是:style-src 'self'; 我在浏览器控制台中收到错误消息,指出资源被阻止...

回答 3 投票 0

模型绑定CSP报告json

我正在尝试创建一个我的网站可以发布 CSP 违规的 URL,但我发现如果没有我自己的自定义模型绑定器,模型绑定非常困难。 CSP json 是什么样子的: { “csp-报告...

回答 1 投票 0

Chrome 扩展和 CSP

我有一个流行的 Chrome 扩展程序,但在使用 CSP 的网站上失败。 该扩展程序根据用户配置的一些设置丰富了用户访问的网站上的内容。 在具有 CSP pol 的站点上...

回答 2 投票 0

如何使用 CSP 仅阻止通过 HTML 元标记进行重定向

场景 假设有以下 HTML 标记,这是成功 XSS 注入尝试的结果: 场景 假设有以下 HTML 标记,这是成功 XSS 注入尝试的结果: <!-- this meta tag was successfully injected/prepended --> <meta http-equiv="refresh" content="3; URL=https://evil.anyhost.it/"> <!-- original markup of the site --> <html> <head> <title>...</title> <script src="/assets/app.js" type="module"></script> </head> <body>...</body> </html> 使用以下内容安全策略将阻止 <meta http-equiv="refresh"> 重定向,但也会拒绝加载任何有效脚本,例如 /assets/app.js。 Content-Security-Policy: default-src 'self'; object-src 'none'; base-uri 'none'; sandbox; 当使用CSP声明sandbox allow-scripts allow-same-origin时,可以加载并执行/assets/app.js处的脚本,但也允许再次重定向。 问题 哪个内容安全策略会阻止 HTTP 重定向(由注入的 <meta http-equiv="refresh"> 负载启动),但仍允许有效的同源脚本?谢谢! 为了实现阻止由注入的 <meta http-equiv="refresh"> 负载发起的 HTTP 重定向的目标,同时仍然允许有效的同源脚本,您可以利用 script-src 标头中的 Content-Security-Policy 指令以及 'unsafe-inline' 值来授权来自同一来源的内联脚本。不过,请记住,允许 'unsafe-inline' 确实会带来安全隐患,因此在使用此方法时请务必小心。 这是您可以使用的 Content-Security-Policy 标头: Content-Security-Policy: default-src 'self'; object-src 'none'; base-uri 'none'; script-src 'self' 'unsafe-inline'; sandbox; 说明: default-src 'self';:指定只能从同源加载资源。 object-src 'none';:避免加载任何插件或嵌入式资源。 base-uri 'none';:禁止使用 <base> 标签建立不同的基本 URL。 script-src 'self' 'unsafe-inline';:授予脚本从同一源执行的权限,包括内联脚本(通过'unsafe-inline')。这对于执行合法脚本/assets/app.js至关重要。 sandbox;:为内容强制实施沙箱环境。 通过使用 'unsafe-inline' 授予内联脚本权限,您实际上允许任何内联脚本在页面上执行。这引入了潜在的安全漏洞,因为注入页面的任何恶意脚本也可能运行。彻底检查和验证作为内联脚本执行的内容至关重要。 请记住,安全涉及权衡,并且应在清楚地意识到所涉及的风险的情况下允许'unsafe-inline'。如果可行,请考虑使用随机数或哈希来允许特定的内联脚本,同时最大限度地降低代码注入的风险。 假设数据库中的数据符合所提供的条件,您在TropicalRepository中编写的查询方法应该可以正确运行。尽管如此,您的查询方法参数名称中存在一个较小的拼写错误。您使用了 retro 而不是 isRetro。 Java 命名约定通常使用布尔字段的“is”前缀,因此您的方法应为: Tropical findByHouseIsAndSignAndIsRetroAndLang (Integer house, String sign, Boolean isRetro, String lang); 如果您的查询仍未产生预期结果,您可以检查以下几个方面: 数据匹配:验证数据库中的数据是否与您尝试检索的条件精确对应。确认house、sign、isRetro、lang的值是否与查询方法中传入的值完全相同 数据库配置:验证您的数据库是否已正确配置并链接到您的 Spring Boot 应用程序。 Logging:激活 Spring Data JPA 查询日志记录以观察正在生成和执行的实际 SQL 查询。您可以将以下属性附加到您的 application.properties 或 application.yml 文件中: logging.level.org.springframework.data.jpa=DEBUG 这将在应用程序日志中显示 SQL 查询,帮助识别任何问题。 命名约定:重新确认Tropical实体类中的字段名称。字段名称的大小写应与查询方法中使用的大小写匹配。 Java 区分大小写。 数据类型:验证查询方法中参数的数据类型与实体类中对应字段的数据类型是否一致。 NULL 值:如果任何字段(house、sign、isRetro、lang)可以采用 null 值,您可能需要在查询方法中处理此问题。例如,如果 isRetro 是 null,则查询将不会匹配任何记录。

回答 1 投票 0

内容安全策略在 Magneto 2 中不起作用

我使用 https://r0.cloud.yellow.ai 在 Magneto 2 中添加了聊天脚本 我收到以下错误。 拒绝连接到“wss://r0.cloud.yellow.ai/websocket/”,因为它违反了以下内容...

回答 1 投票 0

如何正确设置helmet.js来解决CSP问题?

当我启动 Express 应用程序时,浏览器出现以下错误: 拒绝加载脚本“http://localhost:1337/main.js”,因为它违反了 以下内容安全策略指令:“sc...

回答 3 投票 0

每个页面使用 CSP 规则

按照 https://nightlies.apache.org/wicket/guide/9.x/single.html#_content_security_policy_csp 中的描述,所有 CSP 规则均通过应用程序设置进行管理(类 ContentSecurityPolicySe...

回答 2 投票 0

即使使用 Electron 设置了“img-src”,控制台也会显示“请注意,未显式设置“img-src””CSP 错误

在 Electron 渲染器中,我尝试通过自定义协议加载图像,但在渲染器控制台中出现以下错误: main_window:13 拒绝加载图像“dir://pumpjack.png”

回答 1 投票 0

如何使用 Tampermonkey 禁用/绕过内容安全策略

所以我使用 firebase auth 连接到我在 tampermonkey 中制作的小型网络应用程序 auth.signInWithEmailAndPassword(电子邮件、密码) 问题是当我在目标页面上使用它时,内容被阻止......

回答 1 投票 0

内容安全标头抛出错误

我在我的应用程序中添加 Content-security-policy 标头,方法是提供以下指令值作为 style-src:'unsafe-inline" script-src: www.googletagmanager; font-src: 'self'

回答 0 投票 0

无法通过 Firefox 扩展中的 CDN 文件使用 Vue JS

我正在尝试创建一个 Firefox 扩展并在 Vue JS 中准备好它。我正在使用 Vue JS 的 Production CDN 版本 这是我的 manifest.json 的样子: { “姓名”:“...

回答 0 投票 0

带有内容安全策略的reCAPTCHA

我正在尝试使 reCAPTCHA 与严格的内容安全策略一起工作。这是我的基本版本,可以正常工作: 超文本标记语言 <question vote="28"> <p>我正在努力使 reCAPTCHA 与严格的内容安全策略一起工作。这是我的基本版本,可以正常工作:</p> <p>HTML</p> <pre><code>&lt;script src=&#39;//www.google.com/recaptcha/api.js&#39; async defer&gt;&lt;/script&gt; </code></pre> <p>HTTP 标头</p> <pre><code>Content-Security-Policy: default-src &#39;self&#39;; script-src &#39;self&#39; www.google.com www.gstatic.com; style-src &#39;self&#39; https: &#39;unsafe-inline&#39;; frame-src www.google.com; </code></pre> <p>但是,我想去掉 <pre><code>unsafe-inline</code></pre> 部分中的 <pre><code>style-src</code></pre>。在<a href="https://developers.google.com/recaptcha/docs/faq#im-using-content-security-policy-csp-on-my-website-how-can-i-configure-it-to-work-with-recaptcha" rel="noreferrer">文档</a>上,写着:</p> <blockquote> <p>我们建议使用 CSP3 中记录的基于随机数的方法。确保在 reCAPTCHA api.js 脚本标记中包含您的随机数,我们将处理其余的事情。</p> </blockquote> <p>但是我无法让它工作......这就是我尝试过的:</p> <p>HTML</p> <pre><code>&lt;script src=&#39;//www.google.com/recaptcha/api.js&#39; nonce=&#34;{NONCE}&#34; async defer&gt;&lt;/script&gt; </code></pre> <p>HTTP 标头</p> <pre><code>Content-Security-Policy: default-src &#39;self&#39;; script-src &#39;self&#39; https: &#39;nonce-{NONCE}&#39;; style-src &#39;self&#39; &#39;nonce-{NONCE}&#39;; child-src www.google.com; </code></pre> <p>这是我在 Chrome 53 上遇到的错误:</p> <blockquote> <p>拒绝应用内联样式,因为它违反了以下内容安全策略指令:“style-src 'self' https:'nonce-{NONCE}'”。启用内联执行需要“unsafe-inline”关键字、哈希值(“sha256-MammJ3J+TGIHdHxYsGLjD6DzRU0ZmxXKZ2DvTePAF0o=”)或随机数(“nonce-...”)。</p> </blockquote> <p>我缺少什么?</p> </question> <answer tick="false" vote="11"> <p>reCAPTCHA 服务已更新,因此不再需要 <pre><code>style-src &#39;unsafe-inline&#39;</code></pre>。下面的 HTML 和 HTTP 标头应该适用于每个 <a href="https://github.com/google/recaptcha/issues/107" rel="noreferrer">this</a> 已解决的问题:</p> <p>HTML:</p> <pre><code>&lt;script src=&#34;https://www.google.com/recaptcha/api.js?render=site-key&#34; nonce=&#34;{NONCE}&#34;&gt;&lt;/script&gt; </code></pre> <p>HTTP 标头:</p> <pre><code>Content-Security-Policy: default-src &#39;self&#39;; script-src &#39;nonce-{NONCE}&#39;; img-src www.gstatic.com; frame-src www.google.com; object-src &#39;none&#39;; base-uri &#39;none&#39;; </code></pre> </answer> <answer tick="true" vote="10"> <p>编辑:这个答案现在已经过时,不再相关。</p> <hr/> <p>我不相信 reCAPTCHA 支持 CSP 而不允许内联样式。我在 reCAPTCHA Github 存储库中发现了<a href="https://github.com/google/recaptcha/issues/107" rel="nofollow noreferrer">这个未解决的问题</a>。</p> <p><a href="https://csp-experiments.appspot.com/recaptcha-nonce-test" rel="nofollow noreferrer">此示例页面使用 CSP</a> 进行 reCAPTCHA 工作,因为它没有定义 <pre><code>style-src</code></pre> 或 <pre><code>default-src</code></pre>。检查页面的 DOM 会发现这个插入的 div:</p> <pre><code>&lt;div class=&#34;g-recaptcha&#34; data-sitekey=&#34;6LdOLRgTAAAAAPYECt9KLIL_LLwOuuuHAUw7QUTm&#34;&gt; &lt;div style=&#34;width: 304px; height: 78px;&#34;&gt; &lt;div&gt; &lt;iframe src=&#34;https://www.google.com/recaptcha/api2/anchor?k=6LdOLRgTAAAAAPYECt9KLIL_LLwOuuuHAUw7QUTm&amp;amp;co=aHR0cHM6Ly9jc3AtZXhwZXJpbWVudHMuYXBwc3BvdC5jb206NDQz&amp;amp;hl=en&amp;amp;v=r20160926121436&amp;amp;size=normal&amp;amp;cb=g72al0v10dxg&#34; title=&#34;recaptcha widget&#34; width=&#34;304&#34; height=&#34;78&#34; role=&#34;presentation&#34; frameborder=&#34;0&#34; scrolling=&#34;no&#34; name=&#34;undefined&#34;&gt;&lt;/iframe&gt; &lt;/div&gt; &lt;textarea id=&#34;g-recaptcha-response&#34; name=&#34;g-recaptcha-response&#34; class=&#34;g-recaptcha-response&#34; style=&#34;width: 250px; height: 40px; border: 1px solid #c1c1c1; margin: 10px 25px; padding: 0px; resize: none; display: none; &#34;&gt;&lt;/textarea&gt; &lt;/div&gt; &lt;/div&gt; </code></pre> <p><pre><code>textarea</code></pre>的内联样式计算为<pre><code>MammJ3J+TGIHdHxYsGLjD6DzRU0ZmxXKZ2DvTePAF0o=</code></pre>,由以下公式确定:</p> <pre><code>echo -n &#34;width: 250px; height: 40px; border: 1px solid #c1c1c1; margin: 10px 25px; padding: 0px; resize: none; display: none; &#34; | openssl dgst -sha256 -binary | base64 </code></pre> <p>这与错误消息中指示的哈希值相匹配。然而,在 <pre><code>style-src</code></pre> 中包含哈希值对于 Chrome 中的内联样式不起作用<a href="https://bugs.chromium.org/p/chromium/issues/detail?id=546106" rel="nofollow noreferrer">根据这个未解决的错误</a>。看来这将得到 <pre><code>unsafe-hashed-attributes</code></pre> 的支持,据我所知,Chrome 版本尚未发布。</p> <p>无论如何,添加哈希值使其可以在 Firefox 中运行。</p> </answer> <answer tick="false" vote="-4"> <p>在 ASp.Net 应用程序的 web.config 文件中使用以下代码。</p> <pre><code>&lt;child-src&gt; &lt;add source=&#34;www.google.com&#34;/&gt; </code></pre> <p></p> </answer> </body></html>

回答 0 投票 0

内容安全策略问题 - Directus 9.24.0v

我正在尝试从 directus CMS 站点显示 pdf 文件,但它显示错误“拒绝从‘https://eal.com/assets/7e7ec2d1-eab7-41fa-8181-e972eba1fd1e’加载插件数据,因为它违反了...

回答 1 投票 0

将 CSP 添加到 .Net React 应用程序

我有一个 .net core Web 应用程序,它使用 UseSpa 来服务器反应应用程序。 我添加了一个 csp,其中包括以下内容: applicationBuilder.UseCsp(csp => { // 如果

回答 2 投票 0

使用nonce或sha-256是否允许执行内联事件处理程序?

我对内容安全策略有一点疑问...我的渲染文件 pug 由内联事件处理程序组成,例如 onclick='someFunction()' ...在我安装头盔以添加额外标头后,它是

回答 2 投票 0

脚本导致“拒绝执行内联脚本:需要‘unsafe-inline’关键字、散列…或随机数才能启用内联执行”

我不断收到此错误: 拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“default-src'self'data:gap:http://www.visitsingapore.com http...

回答 2 投票 0

通过 CSP 阻止多个嵌套的 frame-src

如果父页面要屏蔽某些嵌套的frame源,可以使用Content Security Police frame-src。但如果框架本身包含其他

回答 0 投票 0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.