私はこの質問をしました: ランダムなWebページがhttp://127.0.0.1/private.txtに対してAjaxリクエストを行った場合どうなりますか?
答え/コメントは私を混乱させます。私はそれらをこのように解釈するのは正しいですか?
「127.0.0.1へのAjaxリクエストは、他のドメイン/ IPアドレスから作成された場合は明らかにブロックされますが、192.168.1.1にはその保護がありません。」
あれは正しいですか?もしそうなら、それはなぜですか?これが「偶然に」どのように言及され、どれほど不可解に記述されているかについて、私は非常に混乱しています。完全に誤解しない限り、これが最も重要なポイントのようです。
なぜ192.168.1.1(およびおそらく192で始まる他のIPアドレス)のwww.evilmalwaresite.ruからのAjaxリクエストが許可されるのですか?
(または、<img>のsrcで、そのことについては。)
彼らは異なって扱われていません。
元の質問の回答で説明したように、悪意のあるサイトに//127.0.0.1/private.txt
、彼らはそのファイルを読むことができません。しかし、何が隠されているのかブラウザは引き続きローカルWebサーバーにリクエストを送信します。
only Cross-Origin Resource Sharing(CORS)が提供する保護機能は、悪意のあるスクリプトがファイル内のデータを読み取ることができないということです。
元の質問の回答では、悪意のあるサイトがそのファイルからデータを取得できなかったとしても、副作用を引き起こす可能性があると警告されています。私たちが示した例は、ルーターの管理パネルが外部アクセスを許可するために悪用されたもので、ホームネットワークの安全な部分にデータを取得できなくても、誰かが損害を与える可能性がある任意の例にすぎません。
この例では、(機密情報を読み取ろうとするのではなく)悪意のあるサイトが//127.0.0.1/deletePrivate_txt.php
、ブラウザはローカルWebサーバーにその要求を行います。彼らはそのリクエストの結果を読み取ることはできませんが、リクエストは引き続き発生し、このスクリプトの副作用(1958年以降のすべての日記エントリの削除など)も同様に発生します。
CORSは、WebサーバーのIPアドレスに関係なく、サイトをreading機密情報から保護します。ただし、CORSはクロスサイトリクエストフォージェリ(CSRF)から保護しません(設計されていません)。