html - 电子邮件缩略图 URL 在 gmail 中更改为 googleusercontent.com
问题描述
每当用户上传图片时,我都有一个系统,它会向注册用户的 gmail 发送一封电子邮件。但在电子邮件中,我看到类似这样的内容,缩略图不可见。
我检查了元素,发现src
链接到这个 url:
https://ci5.googleusercontent.com/proxy/VI2cPXWhfKZEIarh-iyKNz1j9q7Ymh8ty4Yz19lXh82RjSlACBzS0aRajfIj913uXAsX2ylcLEDs5FBsj4cR9TcU75Pw5djdHx4htxdCAQxs_ue1Q1wi5TV43uLLBpigpjH1xN747mUHSRdTBJmXQWFyykInJCRXicM1KhNk=s0-d-e1-ft#https://www.somedomain.com/files/1658/thumbnail_71JtDozxS1L._SY450_.jpg
显然它被谷歌代理缓存
但是我可以通过访问https://www.somedomain.com/files/1658/thumbnail_71JtDozxS1L._SY450_.jpg
(我屏蔽了域,因此您可能无法使用该图像)来查看没有谷歌用户内容的图像。
我试图清除浏览器缓存,但问题仍然存在。我怎样才能绕过 googleusercontent thingy 或至少使缩略图能够显示。
我在此链接上结帐图像未为 Gmail 显示,但我没有使用本地主机,并且图像本身可以在我的本地网络之外访问。
解决方案
Google 图片代理的工作原理
Google Image Proxy 是一个缓存代理服务器。每次在电子邮件中包含图像链接时,请求都会首先转到 Google Image Proxy 以查看它是否已被缓存,如果是,则应从代理中提供它,否则它将去获取它并在之后将其缓存在那里。
大多数问题的解决方案
如果以下图片:Google 图片代理服务器将获取您的图片:
- 有扩展名
.png
,.jpg
/.jpeg
或.gif
只有。可能.webp
也是。但不是.svg
。 - 不要在图像 URL 中使用任何类型的查询字符串部分,例如
?id=123
- 有一个直接映射到图像上的 URL。
- 名字不长。
图片服务器要求:
- 来自图像服务器/代理服务器的响应必须包含正确的标头,例如
Content-Type: image/jpeg
. - 文件扩展名和
content-type
标题必须是同一类型。 - 服务器响应中的状态码必须是 200 而不是 403、500 等。
还有什么可以帮助的?
设置图片 URL 代理白名单
当您的用户打开电子邮件时,Gmail 会使用 Google 的安全代理服务器来提供可能包含在这些邮件中的图片。这可以保护您的用户和域免受基于图像的安全漏洞的影响。
由于图像代理,依赖于内部 IP 和有时 cookie 的图像链接被破坏。图片 URL 代理白名单设置可让您通过创建和维护将绕过代理保护的内部 URL 白名单来避免损坏的图片链接。
在配置图片 URL 代理白名单时,您可以指定一组域和一个路径前缀,可用于指定大量 URL。有关示例,请参阅以下指南。
配置图片 URL 代理白名单设置:
- 登录您的Google 管理控制台。使用您的管理员帐户登录(不以@gmail.com 结尾)。
- 在管理控制台主页上,转到
Apps
>G Suite
>Gmail
>Advanced settings
。提示:要查看高级设置,请滚动到 Gmail 页面的底部。- 在左侧,选择您的顶级组织。
- 滚动到图片 URL 代理白名单部分。
- 输入图片 URL 代理白名单模式。匹配的 URL 将绕过图像代理保护。有关更多详细信息和说明,请参阅下面的指南。
- 在底部,点击保存。
更改传播到用户帐户最多可能需要一个小时。您可以在管理控制台审核日志下跟踪之前的更改。
应用图片 URL 代理白名单设置的指南
安全注意事项
在配置图像 URL 代理白名单设置之前,请咨询您的安全团队。如果不小心使用,绕过图像代理白名单保护的决定可能会使您的用户和域面临安全风险。
一般来说,如果您有一个需要通过 cookie 进行身份验证的域,并且该域由您组织内的管理员控制并且完全受信任,那么将该 URL 列入白名单不应使您的域受到基于图像的攻击。
重要提示:不建议禁用图像代理。此选项可为管理员提供灵活性,但禁用图像代理会使您的用户容易受到恶意攻击。
输入图像 URL 模式
要维护将绕过代理保护的内部 URL 白名单,请在图像 URL 代理白名单设置中输入图像 URL 模式。匹配的 URL 将绕过图像代理。
模式可以包含方案、域和路径。
/
模式必须始终在域和路径之间存在正斜杠 ( )。如果 URL 模式指定了方案,则方案和域必须完全匹配。否则,域可以部分匹配 URL 后缀。例如,模式google.com
匹配www.google.com
,但不匹配gle.com
。URL 模式可以指定与路径前缀匹配的路径。重要提示:在输入图像 URL 模式时输入您的实际域名。
/
始终在域名后包含尾部正斜杠 ( )。图片 URL 模式示例
以下模式仅是示例。以下模式:
http://rule_fixed_scheme_domain.com/ rule_flex_scheme_domain.com/ rule_fixed_subpath.com/cgi-bin/
... 将匹配以下 URL:
http://rule_fixed_scheme_domain.com/ http://rule_fixed_scheme_domain.com/test.jpg?foo=bar#frag http://rule_fixed_scheme_domain.com rule_flex_scheme_domain.com/ t.rule_flex_scheme_domain.com/test.jpg http://t.rule_flex_scheme_domain.com/test.jpg https://t.rule_flex_scheme_domain.com/test.jpg http://rule_fixed_subpath.com/cgi-bin/ http://rule_fixed_subpath.com/cgi-bin/people
注意: URL 方案 (
http://
) 是可选的。如果省略方案,则模式可以匹配任何方案,并允许在域后缀上进行部分匹配。预览图像 URL 模式
单击预览以查看 URL 是否与您设置的图像 URL 模式匹配。如果图像 URL 与某个模式匹配,您将看到一条确认消息。如果图像 URL 不匹配,则会出现错误消息。
推荐阅读
- c - 做什么 | 0x01用C语言做什么?
- javascript - 有没有办法用 Vue.JS SPA 刷新 Laravel Passport 的 cookie 令牌?
- python - 如果数组的每一行出现在纯numpy的另一个数组中,则有效地删除它
- php - 自动的
标签?
- javascript - ```XLSX.writeFile``` 没有在我的文件系统中下载工作簿
- vue.js - 如何在 ag-grid 中显示行数?
- c++ - typedef shared_ptr
转换为布尔值 - node.js - 主机“localhost”覆盖 docker 中的“localhost”
- java - 如何在多对多关系spring boot中添加现有价值
- scala - 如何在 Spark 中以编程方式获取执行者数量和每个执行者的任务数量