gpt4 book ai didi

javascript - Google Adwords CSP(内容安全策略)img-src

转载 作者:可可西里 更新时间:2023-11-01 15:05:05 26 4
gpt4 key购买 nike

img-src 中有哪些域/协议(protocol)是否需要 Content-Security-Policy header 指令才能允许 Google AdWords 转化跟踪?

从测试中,当我们拨打 google_trackConversion 时,看起来浏览器创建了一个带有 src 的图像,该图像遵循不同域之间的 302 重定向链......

www.googleadservices.com ->
googleads.g.doubleclick.net ->
www.google.com ->
www.google.co.uk

最后 .co.uk对我来说看起来很可疑。当我们在英国进行测试时,我们担心从其他国家/地区调用的跟踪会重定向到其他域。

我们需要打开哪些域的完整列表才能进行跟踪?

根据评论中的要求,第一个请求的示例路径组件是:
pagead/conversion/979383382/?random=1452934690748&cv=8&fst=1452934690748&num=1&fmt=3&label=jvoMCNP4umIQ1uiA0wM&guid=ON&u_h=1080&u_w=1920&u_ah=1033&u_aw=1920&u_cd=24&u_his=18&u_tz=0&u_java=false&u_nplug=5&u_nmime=7&frm=0&url=https%3A//beta.captevate.com/payment%3Flevel%3Da00&async=1

并第二次重复转换,第一个请求的路径组件是
pagead/conversion/979383382/?random=1452934959209&cv=8&fst=1452934959209&num=1&fmt=3&label=jvoMCNP4umIQ1uiA0wM&guid=ON&u_h=1080&u_w=1920&u_ah=1033&u_aw=1920&u_cd=24&u_his=26&u_tz=0&u_java=false&u_nplug=5&u_nmime=7&frm=0&url=https%3A//beta.captevate.com/payment%3Flevel%3Da00&async=1

我使用免费的 VPN 服务从几个国家(荷兰和新加坡)连接,最后一次重定向没有发生:最终请求到 www.google.com是 200。但是,我显然没有尝试从每个国家/地区连接,所以我原来的问题成立。

最佳答案

不幸的是,没有很多方法可以解决这个问题。当 CSP 处于事件状态时,资源需要白名单(在远程资源的情况下,例如这个)或内联技巧(即 noncesha256-... )。不过,归根结底,CSP 可能仍然可以使您的站点更安全并保护大多数资源。

但是,根据您尝试做的事情,您可能仍然能够实现目标。

以下是一些选项:

  • 将所有图像列入白名单。

    当然,你可以简单地放置一个 "*"在您的 img-src指令,但我想您已经知道这一点并且选择不这样做,因为它破坏了 CSP 对图像的保护。
  • 通过替代方式加载图像。

    如果您所追求的只是专门锁定图像,并且,比如说,不要太在意 XMLHttpRequest ,您可以通过 POST 加载像素甚至通过 <script>带有自定义标签 type (使用 AdWords image tag 跟踪方法)。这利用了这样一个事实,即 Google 只需要浏览器完成 HTTP 请求/响应(和重定向)循环以用于分析目的,而您并不真正关心解析或执行结果内容,无论如何它是一个 1x1 透明像素.这允许您锁定您的 img-src指令(如果这确实是您的目标),同时仍然允许 Google 想用于重定向的任何域。

    我知道这只会解决您的问题,但如果您的主要威胁是恶意图像,它会很有用。
  • 将所有 Google 域放在您的 img-src 中.

    如下所示。标题长度将是一个问题(即使规范说你很好,实现者并不总是那么慷慨),更重要的是,当谷歌改变他们的域列表时,你可能会遇到虚假的失败,这当然不是公开的或容易的引人注目的行动(除了您的广告转化没有实现!)。由于我认为您的工作不是不断更新该列表,因此您可能不想使用此选项。
  • 报告失败几个月,然后继续努力。

    因为 CSP 支持报告 URI 和 Content-Security-Policy-Report-Only变体,您可以在仅报告模式下推出它并等待报告进来。如果您已经拥有关于您的用户群的良好数据(并且它没有太大变化),这可能是一个不错的选择 - 一旦您看到这些报告稳定在域列表上,将其密封在常规 CSP header 中。或者,您可以在最终 header 上放置一个报告 URI 以捕获任何其他故障。当然,此策略的缺点是您在仅报告模式下无法获得保护,而当您切换到强制执行时,失败会导致转换数据丢失,而您正在追赶。
  • 带有反向代理的静态像素

    好的。好吧,由于上述选项不太好(我承认),是时候跳出框框思考了。这里的问题是 Google 应用的 HTTP 优化技术(分片/地理固定域)与良好的安全实践(即 CSP)不一致。域歧义的根本原因是客户端的地理位置,那么为什么不自己pin呢?

  • 假设您对自己的 HTTP 服务器有高级控制权,您可以使用静态像素方法自己跟踪和代理请求,如下所示:
    User ---> GET http://your-page/

    User <--- <html>...
    pixel: http://your-page/pixel?some=params

    User ---> http://your-page/pixel?some=params
    ---> fetch http://googleads.g.doubleclick.net/pagead/viewthroughconversion/12345/?some=params
    <--- redirect to http://google.com, or http://google.co.uk
    User <--- return redirect

    使用 static pixel (如方法#2)并将您的代理放在美国或英国应该确保源 IP 在地理上固定在那里,并且 Google 的任播前端应该将您路由到一个稳定的端点。如果您愿意,在用户和 Google 之间放置代理还可以让您有机会强制重写重定向。

    为了简化代理设置(并添加一些性能香料),您可以选择类似 Fastly 的内容。与 Origin Shielding而不是自己构建。如果您从那里添加 DoubleClick 后端和代理,您可以将来自 CDN 的原始请求固定为仅来自某个地理区域。无论哪种方式,您的用户都应该看到一组稳定的重定向,您可以将该 Google 域列表缩减为仅 img-src 'self' *.google.com *.doubleclick.net *.googleadservices.net .

    编辑:还值得注意的是 FaSTLy(和一个 growing list of other CDN providers ) peer directly with Google Cloud在他们的一些存在点,为您的代理流量提供进入 Google 网络的优化路径。

    关于javascript - Google Adwords CSP(内容安全策略)img-src,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34361383/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com