尽管定义了 script-src,但仍报告了 Script-src-elem
Script-src-elem being reported although script-src is defined
相关:Why is script-src-elem not using values from script-src as a fallback?
我看到 CSP 报告很少,例如https://track.adform.net/serving/scripts/trackpoint/async/
由于有效指令 script-src-elem
而被阻止。正如您在下面的政策中看到的那样,我没有定义 script-src-elem
,而是希望它回落到 script-src
甚至 default-src
。这是我在调试此策略时的样子。
我自己无法重现该报告。
完整报告:
{
"csp-report": {
"document-uri": "https://www.example.com/some/uri",
"effective-directive": "script-src-elem",
"original-policy": "default-src 'self' data: fonts.gstatic.com *.googleapis.com browser.sentry-cdn.com *.youtube.com i.ytimg.com sentry.io images.prismic.io *.atdmt.com *.adnxs.com *.google.se *.google.com *.facebook.com connect.facebook.net *.hotjar.com hotjar.io *.hotjar.io *.adform.net www.google-analytics.com www.gstatic.com www.googletagmanager.com stats.g.doubleclick.net;script-src 'self' 'unsafe-inline' 'unsafe-eval' data: fonts.gstatic.com *.googleapis.com browser.sentry-cdn.com *.youtube.com i.ytimg.com sentry.io images.prismic.io *.atdmt.com *.adnxs.com *.google.se *.google.com *.facebook.com connect.facebook.net *.hotjar.com hotjar.io *.hotjar.io *.adform.net www.google-analytics.com www.gstatic.com www.googletagmanager.com stats.g.doubleclick.net;style-src 'self' 'unsafe-inline' data: fonts.gstatic.com *.googleapis.com browser.sentry-cdn.com *.youtube.com i.ytimg.com sentry.io images.prismic.io *.atdmt.com *.adnxs.com *.google.se *.google.com *.facebook.com connect.facebook.net *.hotjar.com hotjar.io *.hotjar.io *.adform.net www.google-analytics.com www.gstatic.com www.googletagmanager.com stats.g.doubleclick.net;img-src 'self' * data:;report-uri https://example.report-uri.com/r/d/csp/reportOnly",
"blocked-uri": "https://track.adform.net/serving/scripts/trackpoint/async/"
}
}
我主要在 Windows 上的 chrome 浏览器中看到它。 Chromium 跟踪器中有一个错误 [1] 报告,但在没有进一步调查的情况下被关闭并且似乎影响了其他东西。
我的政策有问题还是应该在跟踪器中再次打开错误?
[1] https://bugs.chromium.org/p/chromium/issues/detail?id=880816
Script-src-elem being reported although script-src is defined
Chrome 强烈遵守 CSP3 规范,它报告 violated-directive as effective-directive。 Chrome 发送 有效指令 如果此类指令将出现在政策中,则应该发生违规行为。
Firefox 尽管 CSP3 规范确实发送了一个真正的 violated-directive,因为它出现在政策中。这将包含 default-src 指令,以防在执行指令时回退到默认源而导致违规。
浏览器 控制台 始终显示策略中实际违反的指令。
因此在政策的情况下:
default-src 'none'
Chrome 为 <script>
和 <script src=>
发送一个 script-src-elem
,为内联事件处理程序发送一个 script-src-attr
和 javascript:-导航,除了一个 bug(这个错误不会触及你的 CSP,因为允许内联脚本)。
Forefox 在违规报告中发送 default-src
。
谁的行为更有用是一个悬而未决的问题,但我更喜欢 Firefoxes。
因为 Chrome 可以让任何在长回退指令链的情况,例如 Worker,尤其是当某些浏览器跳过此链中的某些回退指令时。
所以在这里我们甚至不需要“去看医生”,在你的情况下,script-src 确实用于任何脚本。
正确的问题是 为什么 https://track.adform.net/serving/scripts/trackpoint/async/
有时会在 script-src
指令中被阻止,尽管其中指定了 *.adform.net
源 。
由于情况无法重现,唯一的方法是分析统计数据 - 用户代理和 IP。
如果 IP 属于 public 托管,您可以忽略此类违规行为 - 这是机器人。
如果阻止了唯一的 URL https://track.adform.net/serving/scripts/trackpoint/async/
,它可能是某些浏览器“隐私”扩展,如提到的 here,因为这个 URL 是一个跟踪器。
browser.sentry-cdn.com
来源是否意味着您使用 sentry? Does sentry shows the CSP errors? It should catch those, because CSP violations has built-in javascript errors handlers via SecurityPolicyViolationEvent。
PS: 我只见过一个奇数 "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36" 阻止了所有 HTTPS: 来源。正如从 original-policy
中看到的那样,此用户代理只是从策略中删除了所有 https://。
Is there something wrong with my policy or perhaps a bug should be
opened in the tracker again?
我没有发现您的 CSP 有任何问题。无论如何它不应该锁定 https://track.adform.net/serving/scripts/trackpoint/async/
.
恕我直言,要打开一个错误,它需要收集一些细节。
相关:Why is script-src-elem not using values from script-src as a fallback?
我看到 CSP 报告很少,例如https://track.adform.net/serving/scripts/trackpoint/async/
由于有效指令 script-src-elem
而被阻止。正如您在下面的政策中看到的那样,我没有定义 script-src-elem
,而是希望它回落到 script-src
甚至 default-src
。这是我在调试此策略时的样子。
我自己无法重现该报告。
完整报告:
{
"csp-report": {
"document-uri": "https://www.example.com/some/uri",
"effective-directive": "script-src-elem",
"original-policy": "default-src 'self' data: fonts.gstatic.com *.googleapis.com browser.sentry-cdn.com *.youtube.com i.ytimg.com sentry.io images.prismic.io *.atdmt.com *.adnxs.com *.google.se *.google.com *.facebook.com connect.facebook.net *.hotjar.com hotjar.io *.hotjar.io *.adform.net www.google-analytics.com www.gstatic.com www.googletagmanager.com stats.g.doubleclick.net;script-src 'self' 'unsafe-inline' 'unsafe-eval' data: fonts.gstatic.com *.googleapis.com browser.sentry-cdn.com *.youtube.com i.ytimg.com sentry.io images.prismic.io *.atdmt.com *.adnxs.com *.google.se *.google.com *.facebook.com connect.facebook.net *.hotjar.com hotjar.io *.hotjar.io *.adform.net www.google-analytics.com www.gstatic.com www.googletagmanager.com stats.g.doubleclick.net;style-src 'self' 'unsafe-inline' data: fonts.gstatic.com *.googleapis.com browser.sentry-cdn.com *.youtube.com i.ytimg.com sentry.io images.prismic.io *.atdmt.com *.adnxs.com *.google.se *.google.com *.facebook.com connect.facebook.net *.hotjar.com hotjar.io *.hotjar.io *.adform.net www.google-analytics.com www.gstatic.com www.googletagmanager.com stats.g.doubleclick.net;img-src 'self' * data:;report-uri https://example.report-uri.com/r/d/csp/reportOnly",
"blocked-uri": "https://track.adform.net/serving/scripts/trackpoint/async/"
}
}
我主要在 Windows 上的 chrome 浏览器中看到它。 Chromium 跟踪器中有一个错误 [1] 报告,但在没有进一步调查的情况下被关闭并且似乎影响了其他东西。
我的政策有问题还是应该在跟踪器中再次打开错误?
[1] https://bugs.chromium.org/p/chromium/issues/detail?id=880816
Script-src-elem being reported although script-src is defined
Chrome 强烈遵守 CSP3 规范,它报告 violated-directive as effective-directive。 Chrome 发送 有效指令 如果此类指令将出现在政策中,则应该发生违规行为。
Firefox 尽管 CSP3 规范确实发送了一个真正的 violated-directive,因为它出现在政策中。这将包含 default-src 指令,以防在执行指令时回退到默认源而导致违规。
浏览器 控制台 始终显示策略中实际违反的指令。
因此在政策的情况下:
default-src 'none'
Chrome 为
<script>
和<script src=>
发送一个script-src-elem
,为内联事件处理程序发送一个script-src-attr
和 javascript:-导航,除了一个 bug(这个错误不会触及你的 CSP,因为允许内联脚本)。Forefox 在违规报告中发送
default-src
。
谁的行为更有用是一个悬而未决的问题,但我更喜欢 Firefoxes。
因为 Chrome 可以让任何在长回退指令链的情况,例如 Worker,尤其是当某些浏览器跳过此链中的某些回退指令时。
所以在这里我们甚至不需要“去看医生”,在你的情况下,script-src 确实用于任何脚本。
正确的问题是 为什么 https://track.adform.net/serving/scripts/trackpoint/async/
有时会在 script-src
指令中被阻止,尽管其中指定了 *.adform.net
源 。
由于情况无法重现,唯一的方法是分析统计数据 - 用户代理和 IP。
如果 IP 属于 public 托管,您可以忽略此类违规行为 - 这是机器人。
如果阻止了唯一的 URL https://track.adform.net/serving/scripts/trackpoint/async/
,它可能是某些浏览器“隐私”扩展,如提到的 here,因为这个 URL 是一个跟踪器。
browser.sentry-cdn.com
来源是否意味着您使用 sentry? Does sentry shows the CSP errors? It should catch those, because CSP violations has built-in javascript errors handlers via SecurityPolicyViolationEvent。
PS: 我只见过一个奇数 "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36" 阻止了所有 HTTPS: 来源。正如从 original-policy
中看到的那样,此用户代理只是从策略中删除了所有 https://。
Is there something wrong with my policy or perhaps a bug should be opened in the tracker again?
我没有发现您的 CSP 有任何问题。无论如何它不应该锁定 https://track.adform.net/serving/scripts/trackpoint/async/
.
恕我直言,要打开一个错误,它需要收集一些细节。