有谁知道如何让 CSP(即使使用 default-src 通配符)工作,以便现代 Analytics 脚本将网站每页数据(不仅仅是主页数据)发送到网站所有者的帐户,从而显示 AdSense 广告?
我为我的网站尝试了多种 CSP 变体,包括
Google 的机器看不到 Analytics 脚本,尽管 Google 的人总是在我的网站源代码中看到它。即使将 CSP default-src 设置为星号通配符也失败了。 在谷歌论坛和非谷歌论坛上询问都没有任何效果,除了人们说问题出在我的 CSP 上,我收到一封电子邮件,说我应该完全评论 CSP。这最后奏效了。注释掉应该不会比 default-src 通配符好,但注释掉是我获得广告和网站内部数据的唯一方式。 大约一个月前,我向 Google 发布了有关不兼容性的帖子,但没有人反驳这一点 (https://www.en.advertisercommunity.com/t5/Code-Implementation/content-security-policy-and-Analytics-and-likely-AdSense/m-p/491031)。 Stack Overflow 的答案在 <>Google Analytics and Content-Security-Policy header > 不要表明任何人正在获取网站内的分析数据,并且该线程基于过时的 Google 脚本。 线程 <>Google analytics.js and Content Security Policy > 适用于应用程序,而不是网站,没有人报告获得网站内分析数据,即使使用最宽松的 CSP,我的努力也失败了。 解决方案在线程 <>Google analytics Universal code not tracking 中> 但解决方案仅限于将 CSP 设置为报告,而不是阻塞,这对我来说用处不大。 没有 Stack Overflow 线程是关于 CSP 和 AdSense 的。当我建议 H5BP 在他们的模型 <.htaccess> 中告诉用户这一点时,他们的受访者说这对他有用,并把我推荐给了你。
作为对建议的检查,是否有人在自己的 Google Analytics(分析)帐户中看到该页面特定的数据并在运行 .htaccess CSP 时看到 AdSense 广告?
最佳答案
Adsense
对于 Google adsense,例如这个 CSP“有效”:
Content-Security-Policy: frame-ancestors 'self';
它可以防止您的页面被加框,而不会限制您的页面可以做什么。因此它的 XSS 保护是不存在的。
但是 Adsense 脚本可以加载一些东西,这些东西会加载,而这些东西又会加载等等。考虑到他们可以使用的数千个(在撰写本文时:3103)第 3 方广告网络,根本没有合理或可行的方法来我们永远不知道他们所有人可能需要什么才能让广告发挥作用。因此,如果您想拥有 Adsense,就不会限制从何处加载图像、flash、javascript 等。
一个或另一个:
但不是两者都是。
分析
是另一回事,已经在其他回复中提到了。 [不是用户]
CSP 政策
需要提醒宽松 CSP 政策的潜在作者,例如https: 和 * 不包含对 unsafe-inline 和 data: 来源的许可。我在网络上看到很多作者认为他们这样做的地方。
在编写政策时,最好先放一个仅供报告使用的政策。 标题被命名为“Content-Security-Policy-Report-Only”而不是“Content-Security-Policy”,它不会停止任何事情,只需将 json 中的报告部分发送到指定的目的地。看这里:https://developers.google.com/web/fundamentals/security/csp/#report-only
关于javascript - 内容安全政策能否与 Google Analytics 和 AdSense 兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47487923/
我需要读入一个包含数字列表的文件。此代码读取文件并将其放入二维数组中。现在我需要获取数组中所有数字的平均值,但我需要将数组的内容更改为int。有什么想法可以将to_i方法放在哪里吗?ClassTerraindefinitializefile_name@input=IO.readlines(file_name)#readinfile@size=@input[0].to_i@land=[@size]x=1whilex 最佳答案 只需将数组映射为整数:@land边注如果你想得到一条线的平均值,你可以这样做:values=@input[x]
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R
我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s
在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?
导读语言模型给我们的生产生活带来了极大便利,但同时不少人也利用他们从事作弊工作。如何规避这些难辨真伪的文字所产生的负面影响也成为一大难题。在3月9日智源Live第33期活动「DetectGPT:判断文本是否为机器生成的工具」中,主讲人Eric为我们讲解了DetectGPT工作背后的思路——一种基于概率曲率检测的用于检测模型生成文本的工具,它可以帮助我们更好地分辨文章的来源和可信度,对保护信息真实、防止欺诈等方面具有重要意义。本次报告主要围绕其功能,实现和效果等展开。(文末点击“阅读原文”,查看活动回放。)Ericmitchell斯坦福大学计算机系四年级博士生,由ChelseaFinn和Chri
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("
我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的