cloudflare 是否通过浏览器 PDF 插件在浏览器中为 PDF 请求注入跟踪代码?

信息安全 谷歌 pdf 云耀斑
2021-09-05 00:34:12

在浏览器中打开 PDF 链接(例如带有 ootb PDF 查看器插件的 google chrome)显然表明当 PDF 托管在面向 cloudflare 的域上时,嵌入代码中会存在其他数据。

当 PDF 位于 cloudflare 后面时,使用 chrome 开发工具检查显示的 PDF 文件的页面源会显示一些“报告”URL https://a.nel.cloudflare.com/report/v3?s=%2BW057P981N7Esg...(请参阅第二个代码块)。

未通过 cloudflare 提供文件的 PDF 嵌入:

<embed id="plugin" type="application/x-google-chrome-pdf" src="https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf" stream-url="chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/f02f891e-7fd9-4857-8a34-f4e05abb87f8" headers="accept-ranges: bytes
cache-control: max-age=21600
content-length: 13264
content-type: application/pdf; qs=0.001
date: Sun, 05 Sep 2021 08:17:57 GMT
etag: &quot;33d0-438b181451e00&quot;
expires: Sun, 05 Sep 2021 14:17:57 GMT
last-modified: Mon, 27 Aug 2007 17:15:36 GMT
strict-transport-security: max-age=15552000; includeSubdomains; preload
x-backend: ssl-mirrors
" background-color="4283586137" javascript="allow" full-frame="" pdf-viewer-update-enabled="">

通过 cloudflare提供的文件的 PDF 嵌入:

<embed id="plugin" type="application/x-google-chrome-pdf" src="https://www.cloudflare.com/static/839a7f8c9ba01f8cfe9d0a41c53df20c/cloudflare-cdn-whitepaper-19Q4.pdf" stream-url="chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/fab5433b-5189-4469-91bb-fe144b761c7f" headers="accept-ranges: bytes
age: 105287
alt-svc: h3-27=&quot;:443&quot;; ma=86400, h3-28=&quot;:443&quot;; ma=86400, h3-29=&quot;:443&quot;; ma=86400, h3=&quot;:443&quot;; ma=86400
cache-control: max-age=8640000
cf-cache-status: HIT
cf-ray: 689e1d381a951501-MAD
content-length: 921473
content-type: application/pdf
date: Sun, 05 Sep 2021 08:33:41 GMT
etag: static/839a7f8c9ba01f8cfe9d0a41c53df20c/cloudflare-cdn-whitepaper-19Q4.797a721498.pdf
expect-ct: max-age=604800, report-uri=&quot;https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct&quot;
nel: {&quot;success_fraction&quot;:0,&quot;report_to&quot;:&quot;cf-nel&quot;,&quot;max_age&quot;:604800}
report-to: {&quot;endpoints&quot;:[{&quot;url&quot;:&quot;https:\/\/a.nel.cloudflare.com\/report\/v3?s=Bi6bZw6jf1FJoimuy2arirenUDiwyZX%2B%2B1Ty506xD9qMJ5UggIvZAy2h8gKogsJORkPlWdnZ12udf6CN%2BadaEF0FRKFAyZQabI6xkui0%2FrV%2BaCFsp7BmbEHnoLk0HPmJ6pMeMQ%3D%3D&quot;}],&quot;group&quot;:&quot;cf-nel&quot;,&quot;max_age&quot;:604800}
server: cloudflare
strict-transport-security: max-age=31536000
vary: Accept-Encoding
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
" background-color="4283586137" javascript="allow" full-frame="" pdf-viewer-update-enabled="">

问题

这是否意味着 cloudflare 正在重写 PDF 嵌入的 HTML 源代码并跟踪通过浏览器 PDF 插件打开的 PDF 文件?这对安全/隐私有什么影响?禁用浏览器 PDF 嵌入插件会减少 cloudflare 收集的数据量吗?

特别令人困惑的是,<embed/>代码应该是由 PDF 浏览器插件生成的,而不是从传入的响应中生成的,那么这种重写如何专门针对 cloudflare 进行呢?

2个回答

这与 HTML 无关。这是 Google Chrome 的 HTML,Cloudflare 控制响应 HTTP 标头,因为它是响应请求的 HTTP 服务器。

Report-To 标头是内容安全策略安全功能的一部分。

不,这看起来不像是安全或隐私问题。

您的 PDF 查看器似乎正在生成一个<embed>元素并添加了一个非标准headers属性。此属性似乎包含 HTTP响应标头,因此只是 PDF 文件的服务器发回的任何内容。例如,它包含一个用于缓存的 ETag,以及各种与安全相关的标头。

Cloudflare 为其客户提供了涉及 HTML 和 HTTP 重写的各种功能。例如,如果以这种方式配置(例如通过 Cloudflare Worker),它绝对可以注入链接。Cloudflare 处于 MITM 位置,可以注入任意代码并已经跟踪所有请求。这是他们服务的一个重要方面。

report-to标头不用于跟踪目的。它只是为浏览器向网站运营商报告网站问题提供了一种可选方式。这可能包括有关已弃用的浏览器功能、违反内容安全策略 (CSP) 或网络问题的信息。有关示例用例,请参阅他们的文章了解网络错误日志记录由于大多数网站不运行可以收集和分析 CSP 报告的服务器,Cloudflare 默认插入报告 URL。Cloudflare 还可以使用有关网络和 DNS 问题的报告来提高其服务的稳定性,从而使他们的客户受益。