ユーザーが画像をアップロードするたびにシステムがあり、登録ユーザーのGmailにメールを送信します。しかし、電子メールでは、このようなものが表示され、サムネイルは表示されません。
要素を調べたところ、次のURLにリンクされている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
にアクセスすることで、Googleユーザーコンテンツなしで画像を表示できます(画像を利用できないようにドメインをマスクしました)。
ブラウザのキャッシュをクリアしようとしましたが、問題は解決しません。どうすればgoogleusercontentをバイパスしたり、少なくともサムネイルを表示できるようにしたりできますか。
このリンクをチェックアウトします Gmailには画像が表示されません しかし、localhostを使用していないため、画像自体はローカルネットワークの外部からアクセスできます。
Google Image Proxyの仕組み
Google Image Proxyはキャッシングプロキシサーバーです。画像リンクがメールに含まれるたびに、リクエストはまずキャッシュされているかどうかを確認するために最初にGoogle Image Proxyに移動します。キャッシュされている場合はプロキシから提供するか、フェッチしてキャッシュします。
次の画像の場合、Google Image Proxyサーバーは画像を取得します。
.png
、.jpg
/.jpeg
、または.gif
のような拡張子のみがあります。 .webp
の場合もあります。しかし .svg
ではありません。?id=123
のような画像URLでクエリ文字列部分を使用しないでください画像サーバーの要件:
Content-Type: image/jpeg
などの正しいヘッダーを含める必要があります。content-type
ヘッダーは同じタイプでなければなりません。画像URLプロキシホワイトリストを設定する
ユーザーがメールメッセージを開くと、GmailはGoogleの安全なプロキシサーバーを使用して、これらのメッセージに含まれる画像を提供します。これにより、画像ベースのセキュリティの脆弱性からユーザーとドメインが保護されます。
イメージプロキシのため、内部IPに依存するイメージへのリンク、および場合によってはCookieが破損します。画像URLプロキシホワイトリスト設定では、プロキシ保護をバイパスする内部URLのホワイトリストを作成および維持することにより、画像へのリンク切れを回避できます。
イメージURLプロキシホワイトリストを構成するときに、一連のドメインと、URLの大規模なグループを指定するために使用できるパスプレフィックスを指定できます。例については、以下のガイドラインを参照してください。
画像URLプロキシホワイトリスト設定を構成します。
- サインイン に Google管理コンソール 。 管理者アカウントを使用してサインインします(notは@ gmail.comで終わります)。
- 管理コンソールのホームページから、
Apps
>G Suite
>Gmail
>Advanced settings
。 ヒント:詳細設定を表示するには、Gmailページの下部までスクロールします。- 左側で、最上位組織を選択します。
- Image URL proxy whitelistセクションまでスクロールします。
- 画像URLプロキシホワイトリストパターンを入力します。一致するURLは、画像プロキシ保護をバイパスします。詳細と手順については、以下のガイドラインを参照してください。
- 下部で、Saveをクリックします。
変更がユーザーアカウントに反映されるまで最大1時間かかる場合があります。 管理コンソール監査ログ で以前の変更を追跡できます。
イメージ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パターンのプレビュー
Previewをクリックして、URLが設定した画像URLパターンと一致するかどうかを確認します。画像のURLがパターンと一致する場合、確認メッセージが表示されます。画像のURLが一致しない場合、エラーメッセージが表示されます。
Bharataにはこれに関するすばらしい詳細な回答がありますが、同様の問題で特定した追加を1つ追加したかっただけです。
犯人であることが判明したx-webkit-cspコンテンツセキュリティヘッダーがありました。それを削除すると、すべてが画像プロキシを介して機能しました。
Googleの回答は、x-webkit-cspは非推奨であり、代わりにContent-Security-Policyヘッダーを使用することでした。ただし、これは、サポートされていないヘッダーが単に無視するのではなく、致命的なエラーをスローするというバグのようです。