サーバーAがあり、AでホストされているウェブサイトWがあるとします。WのHTMLには次のものが含まれます。
<img src=https://www.domainD.com/testT.jpg>
次に、WにアクセスするコンピュータCがあります。
コンピュータCはdomainD
にtestT.jpg
を直接尋ねますか?または、AにtestT.jpg
を要求し、次にAがdomainD
にtestT.jpg
を要求し、データをCに送り返しますか?
テスト結果から、前者のケースです。
CがサーバーにtestT.jpg
を直接要求した場合、サーバーはCのIPを簡単に知ることができます。これを防ぐにはどうすればよいですか?
HTTPはハイパーテキスト転送プロトコルです。ハイパーテキストは、さまざまなソースからの情報を集約する機能を表します。 WebページでURLを宣伝すると、ブラウザはそのURLを使用して情報を取得します。これはプロトコルに固有のものです。ここで完全に停止します。
しかし、遠くのリソースのローカルURLをアドバタイズできます。これはリバースプロキシと呼ばれます。優れたhttpサーバーには、そのためのオプションが必要です。 Apacheでは、mod_proxy
には、ProxyPass
ディレクティブで必要なすべてのものが含まれています。
その後、以下を使用できます。
<img src=/domainD/testT.jpg>
そしてApache configでは:
<Location "/domainD/">
ProxyPass "https://www.domainD.com/"
</Location>
ここでは、ブラウザーはローカルURLしか認識しないため、ユーザーのサーバーに要求を送信し、そのサーバーは実際のリソースの要求を送信してクライアントブラウザーに送り返し、元のクライアントIPを隠します。
あなたの例では、コンピュータCはドメインDに直接アクセスして、イメージを取得します。
あなたの質問で述べたように、それはexternalリソースです。つまり、ウェブサイトWはそのホストのコンテンツを制御できません。 @ Tobi-naryが彼の答えで述べたように、クライアントは自分自身を保護しようとすることができます。
もう1つのオプションは、Webサイトでリソースをホストし、ドメインDとのやり取りを完全に回避することです。これが可能であれば、ユーザーだけでなくすべてのユーザーを保護するので、これは私の観点からは最良のオプションです。 「リスク」を認識しています。
サーバー側の防御については、@ Serge-Ballestaが最良の答えを与えたと思います。
すべてをまとめると、これらはあなたのオプションです:
これを行うにはいくつかの方法がありますが、最初の最も明白な方法はVPNですが、これによりサーバーAからIPが隠されます。
もう1つの方法は、ブラウザーのプラグインを使用して、リンクや外部リソース(ページから投稿したものなど)を削除することですが、サイトを非常に見にくくし、多くの機能を失うリスクがあります。
ホワイトリストとブラックリストを追加してプラグインを構築することもできますが、多くの手間がかかります。
VPNは私の意見では最善の策でしょう。
ブラウザは、指定されたタグのurl
に直接アクセスして、画像を取得します。
serverA
でurl
を要求します: https://www.domainA.com/testT.jpg そしてサーバーはdomainD
へのリクエストを処理し結果をあなたに返します。socks proxy
。このようにして、すべてのリクエストはsocksプロキシサーバーIPから送信されます。ここでソックスプロキシをセットアップする方法を確認してください: https://ma.ttias.be/socks-proxy-linux-ssh-bypass-content-filters/
インターネットに直接接続しているデフォルトのブラウザーは、実際にsrc
タグで指定されたサーバーに問い合わせます。
基本的に求めているのは、閲覧トラフィックを匿名化または難読化する方法であり、さまざまなオプションがあります。
[〜#〜] t [〜#〜]he[〜#〜] o [〜#〜] nion[〜#〜] r [〜#〜]外部は(SOCKS)プロキシとして機能し、異なるノードを介して要求します。サーバーはクライアントIPを認識しませんが、TOR出口ノードの1つを認識します。ブラウザープラグインを使用すると、特定のドメインをホワイト/ブラックリストに登録して、一部のドメインでオプションでTOR(またはプロキシ、2を参照)を使用しないようにすることができます。
プロキシ
プロキシIPは表示されますが、クライアントIPは表示されません。ただし、ほとんどのプロバイダーはログを保持しています。これらは、リクエストを追跡するために使用できます(たとえば、そのリクエストに違法なコンテンツが含まれている場合)。特定の設定によっては、DNS要求がマシンから送信される場合があります。
VPN
すべてのトラフィックはVPNプロバイダーを介してルーティングされます。 VPNプロバイダーのIPがサーバーに表示されます。警告:プロバイダーのログ(2を参照)。