8

Web サイトの一部を SSL 対応にすることを考えていますが、一部のページにサードパーティ ベンダー (Google AdSense など) からの広告が含まれています。

ユーザーが広告のあるページを表示すると、「このページには安全なアイテムと安全でないアイテムの両方が含まれています」などの警告メッセージが表示されるため、これはユーザーにとって厄介な問題になると思います. ただし、http ではなく https を使用して Gmail を参照すると、Firefox でその警告が表示されません。

Gmailがこれを隠す方法を知っている人はいますか?

4

6 に答える 6

19

一部のページには、サードパーティ ベンダー (Google AdSense など) からの広告が含まれています。

それならブラウザは正しい — それは安全ではない.

AdSense および他のほとんどの広告ネットワークでは、JavaScript へのリンクが提供されます。外部の <script> を参照すると、ページのコンテンツに対する完全な信頼が外部のスクリプト プロバイダーに与えられます。彼らがやろうとしていること(広告を表示する)だけを行うことを信頼する必要があり、ログインフォームが表示されているページからログインフォームを乗っ取って、入力した値を盗むなどの悪質なことはしないでください。 「広告」スクリプトが銀行口座ページに含まれており、自動的にすべてのお金が空になります。

したがって、外部スクリプトは信頼の問題ですが、広告に HTTPS インターフェースを提供するベンダーを使用している場合、少なくとも信頼する必要がある既知の当事者は 1 つだけです。広告プロバイダーが HTTP インターフェイスしか持っていない場合は、中間者攻撃または同様の攻撃で制御を取得できる人に信頼を送信することになります. ページ全体の信頼レベルを、暗号化されていない単純な HTTP の信頼レベルに事実上引き下げているため、ブラウザは、ページが実際には古い HTTP サイトよりも安全であると不平を言うのはまったく正しいことです。

于 2009-02-25T23:19:31.633 に答える
15

Google のドキュメントは、これが既知の問題であり、回避策を提供していないことを示しています: https://www.google.com/adsense/support/bin/answer.py?answer=10528

于 2009-02-25T23:10:09.440 に答える
4

安全でないコンテンツを含め、表示内容を制御しようとしている場合は、URLをパラメーターとして受け取るハンドラーを作成できます。

ハンドラーはSSLでホストされているため、HTMLをフェッチし、SSLを介してブラウザーにストリーミングして戻すことができます。事実上、それはあなたのための小さなプロキシとして機能します。

私は過去に多くのプロジェクトでこれを行い、実際のネットワーク自体を公開せずにネットワーク内からファイルにアクセスしました。

ここの情報を使用して:http : //www.csharp-station.com/HowTo/HttpWebFetch.aspxパラメーター(フェッチしたい実際のURL)を取るように簡単に適応させることができます...

したがって、レンダリングされたページでhttps://my.domain.com/pages/HttpWebFetch.aspx?url=http://ads.google.com/を呼び出すと、HttpWebFetch.aspxがページコンテンツを取得してhttps経由で中継します。これにより、安全/安全でない警告が削除されます。

于 2009-02-26T13:00:26.417 に答える
3

これはAnalyticの答えなので、これを使用して安全なページに広告を表示しないようにすることができます

if ("http:" == document.location.protocol) { /*show your adds here*/ }

このアイデアは、自分のサイトで分析を行う方法から得ました

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>

これは、安全なページに広告を表示できないことを意味することは認めますが、Google に安全なページのコンテンツを読み取らせて広告を表示させたくないでしょう。(これは、Google の言い訳であり、Google の言い訳ですが、前述のように、Google はそれをサポートしていません)

GMail の質問に答えるには... (ここでは Firebug を使用しているため、これを間違って解釈している可能性があります)

  1. 常に安全な接続で gmail にログインします。広告なし。
  2. コンソールをオンにして、gmail がどのような接続を行っているかを確認します。
  3. コンソールをクリアします
  4. 右側に広告が表示されているメッセージをクリックします。

Gmail からの呼び出しは 2 回だけでした。最初に、私のメールだと推測しているhttps://mail.google.comにアクセスします。2 つ目は、 https: //mail.google.com/mail/channel/ への POST です。

おそらく、Gmail は広告を提供するプロキシからの投稿を要求するのでしょう (他の皆さんは私を正してくれます)。

GMail はコンテンツをプロキシに送信し、プロキシは広告を取得し、プロキシはコンテンツを Gmail に送り返します。すべて安全に。

そこにある総推測

反対票をありがとう、しかし役に立たなかったものについての説明はありません

于 2009-02-25T23:39:22.897 に答える
2

"Does anyone know how Gmail hide this?"

Short answer: they use https to fetch the ads. Looking through the Net tab in Firebug for GMail's page load I see the ads that are on the page in a request with the URL https://mail.google.com/mail/?ui=2&ik=bbff8a9f5c&view=ad&ak=is00jux7yq7kgk730lqdkxklz03d9d8 so it looks like they do have a way to serve ads over https but only for their own sites.

于 2009-02-25T23:53:24.580 に答える
0

すべてのhttp://をhttps://(または相対)に変更した後も、まだこの問題が発生していましたが、最終的にはキャッシュが原因であることに気付きました。ブラウザのキャッシュを更新しましたが、問題ありませんでした。また、あなたのリンク(a href = whatever)はhttpである可能性があるようです。これはほとんどの人にとって明らかかもしれませんが、最初はわかりませんでした:)

于 2011-08-17T13:14:19.943 に答える