代码之家  ›  专栏  ›  技术社区  ›  hades

在gmail中将电子邮件缩略图URL更改为googleusercontent.com

  •  12
  • hades  · 技术社区  · 6 年前

    我有一个系统,每当用户上传一张图片,它就会向注册用户的gmail发送一封电子邮件。但在邮件中,我看到了这样的东西,缩略图是看不见的。

    enter image description here

    我检查了元件,发现 src https://ci5.googleusercontent.com/proxy/VI2cPXWhfKZEIarh-iyKNz1j9q7Ymh8ty4Yz19lXh82RjSlACBzS0aRajfIj913uXAsX2ylcLEDs5FBsj4cR9TcU75Pw5djdHx4htxdCAQxs_ue1Q1wi5TV43uLLBpigpjH1xN747mUHSRdTBJmXQWFyykInJCRXicM1KhNk=s0-d-e1-ft#https://www.somedomain.com/files/1658/thumbnail_71JtDozxS1L._SY450_.jpg

    显然它是由google代理缓存的

    但是我可以通过访问 https://www.somedomain.com/files/1658/thumbnail_71JtDozxS1L._SY450_.jpg (我屏蔽了域,因此图像可能对您不可用)。

    我在这个链接上签出 Images not displayed for Gmail

    2 回复  |  直到 6 年前
        1
  •  10
  •   Bharata colxi    6 年前

    Google图片代理是如何工作的

    Google图像代理是一个缓存代理服务器。每次电子邮件中包含一个图像链接时,请求将首先转到Google图像代理,以查看它是否已被缓存,如果是,它应该从代理服务器向上提供它,否则它将获取它并在之后将其缓存在那里。

    如果出现以下情况,Google图像代理服务器将获取您的图像:

    • 扩展名如下 .png , .jpg / .jpeg .gif .webp 我也是。但不是 .svg .
    • ?id=123
    • 有一个直接映射到图像的URL。
    • 名字不长。

    对映像服务器的要求:

    • Content-Type: image/jpeg .
    • 文件扩展名和 content-type 标题必须属于同一类型。

    还有什么可以帮忙的?

    Google support answer :

    设置图像URL代理白名单

    服务器提供可能包含在这些消息中的图像。这个 保护您的用户和域免受基于图像的安全保护 脆弱性。

    内部IP,有时曲奇被破坏。图像URL代理 白名单设置允许您通过创建 保护。

    配置图像URL代理白名单时,可以指定 一组域和一个路径前缀,可用于指定大

    配置图像URL代理白名单设置:

    • Sign in 给你的 Google Admin console . 使用登录 (做 以@gmail.com结尾)。
    • 从管理控制台主页,转到 Apps > G Suite > Gmail > Advanced settings . 提示: 滚动到Gmail页面的底部。
    • 在左侧,选择您的顶级组织。
    • 滚动到 图像URL代理白名单 章节。
    • 输入图像URL代理白名单模式。匹配的URL将绕过图像代理保护。有关更多详细信息,请参见下面的指南
    • 在底部,单击 保存 .

    更改传播到用户帐户可能需要一个小时。 您可以在下面跟踪以前的更改 Admin console audit log

    应用图像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与模式匹配,您将看到 出现消息。

        2
  •  2
  •   Mark Walker    6 年前

    Bharata对此有一个非常详细的答案,但我只想添加一个我认为与此类似的问题。

    我们有一个x-webkit-csp内容安全头,结果是罪魁祸首。 移除它并通过图像代理完成所有操作。

    谷歌的回应是,x-webkit-csp已被弃用,改为使用内容安全策略头。 然而,这似乎是一个错误,不支持的头抛出一个致命错误,而不是简单地忽略它。