使用 CDN 加速我的网站有哪些风险?我该如何避免它们?

信息安全 网络 tls 网络服务器 javascript 点对点
2021-08-17 15:12:54

众所周知,内容交付网络 (CDN) 可以提高网站的性能,但如果有人要更改驻留在 CDN 上的代码,它们会带来明显的安全风险。

  1. CDN 的安全风险是什么?

  2. 是否有我不应该在 CDN 上提供的内容(例如 javascript、未包装的原始 json 结果)?

  3. 如果我从 CDN 提供 javascript,是否会遇到技术问题?(例如,使用 iFrame vs script/src 和 3rd 方 cookie?)

  4. 对 HTTPS/SSL 连接是否有特别关注?

  5. CDN 可以获取关于我的站点的哪些信息(例如通过引荐来源标头)?

3个回答
  1. 安全风险:
    1. 您自己的网站上可能存在的任何风险。
    2. 对于您提供给他们的数据,与第三方网站相关的任何风险。
    3. 信息的持续时间可能比预期的要长。
  2. 任何私人的或与单个会话相关的内容都不应通过 CDN 提供——我从未听说过这种情况。任何静态和非私有的都应该没问题,包括代码、jscript、json 数据等。
  3. 是的,您可能会遇到从 CDN 提供脚本的问题。您应该通过测试确定您面临的问题。然而,无论源域如何,javascript 通常在几乎任何属于浏览器窗口的任何部分上运行(因此有如此多的攻击媒介和 facebook 广告)。
  4. 对 HTTPS 没有特别的担忧。CDN 应该有自己的证书并提供 SSL 服务。
  5. CDN 可以确定您网站上访问的页面。如果您使用与您的网站相同的域(cookie 重叠)指向他们,他们可以确定更多。这就是为什么您经常看到像“example-static.com”这样的域而不是“static.example.com”——它使 *.example.com cookie 保持私有。

唯一的问题是,如果 CDN 遭到入侵,黑客可以使用修改后的 JS 文件窃取访问者的 cookie,因为该 JS 将在的网站中执行。就这样。

一般情况下,CDN 不使用 cookie(CDN 子域没有 cookie)。关于 SSL 会话,该子域使用另一个 SSL 会话。完全没有问题。

CDN 可以使用 ETAG 跟踪用户,但我不知道有任何 CDN 这样做(我没有测试过)

可以为每个新请求生成一个唯一值,并在请求刷新的任何时候重复。