带有 Paypal 按钮的内容安全策略

Content Security Policy with Paypal button

我想将内容安全策略 (CSP) 设置到我的页面,该页面有一个 paypal 按钮,其中有来自 https://www.paypalobjects.com 的 gif 图片服务,我将其包含在我的 img-src 白名单中。

     <input type="image" src="https://www.paypalobjects.com/en_GB/SG/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal – The safer, easier way to pay online.">

但图像随后会暂时重定向到随机域,例如 https://akamai.mathtag.com, https://ak1s.abmr.net

我应该如何设置 CSP 以使 img-src 也包含重定向域。我不知道所有的重定向域。

CSP 要求您知道引用内容的域,这是它的弱点之一。

为了解决这个问题,您可以做一些事情:

  1. 从 CSP 中完全删除 img-src 白名单。这听起来 sub-optimal,但除非有人能够直接破坏您的服务器(在这种情况下他们可以修改 CSP header),或者他们能够利用 Cross-Site 脚本攻击您的网站,img-src 不是一个大问题。我更担心 script-src 部分,如果实施得当,可能会阻止未经授权的图像被加载。
  2. 为 CSP 创建基于白名单的代理。基本上,浏览器从您的服务器请求图像,然后您的服务器在后端检索图像,通过重定向、缓存图像,然后 returns 将其提供给用户。
  3. 正如 SilverlightFox 所说,您也可以将图像直接存储在您的服务器上。如果您需要访问不符合如此严格的 CSP 的其他图像,这可能会有问题。此外,如果购买按钮图像发生变化而您没有意识到 it/haven 未更新它,这可能会引起在其他地方看到新购买按钮的潜在客户的怀疑。

希望对您有所帮助!

请注意,Paypal 规定您只能盗链接结帐按钮,而不能将其保存在其他任何地方:

PayPal requires that you use the PayPal Check out button and the PayPal mark image hosted on secure PayPal servers.

Obtaining an Express Checkout Button and PayPal Mark

不清楚这是如何强制执行的。