Same Origin Policy をよりよく理解するために、誰か助けてくれませんか。説明しているウェブサイトをいくつか見たことがありますが、もっと簡単な説明を探しています。子供にどのように説明しますか?
このリンク は、私が見つけた中で最高の仕事をしているようです。誰でも拡張できますか?このポリシーが存在する理由を誰か説明できますか?
Same Origin Policy をよりよく理解するために、誰か助けてくれませんか。説明しているウェブサイトをいくつか見たことがありますが、もっと簡単な説明を探しています。子供にどのように説明しますか?
このリンク は、私が見つけた中で最高の仕事をしているようです。誰でも拡張できますか?このポリシーが存在する理由を誰か説明できますか?
CSRFを防ぐには、同一生成元ポリシーが必要です。次のシナリオを想像してください。
var xhr = new XMLHttpRequest(),
data = "from="+victimAccount
+ "&to="+jacksAccount
+ "&amt=a+gazillion+dollars";
xhr.open("POST", "http://tbtfbank.tld/accounts/wiretransfer.aspx", true);
xhr.send(data);
また、ジャックは同じ手法を簡単に使用して、何千もの口座番号や暗証番号、または銀行のマネージャーであるジョーが自分の口座からアクセスできるその他の情報を収集できたはずです。
幸いなことに、ジャックの悪意のあるページは銀行アプリケーションとは別のドメインでホストされているため、銀行アプリケーションに対して XHR を作成することは許可されていないため、ほとんどの場合、同一生成元ポリシーによってこの種の攻撃から保護されます。悪意のあるページには、銀行アプリケーションに GET リクエストを行う画像が含まれている可能性がありますが、GET リクエストを介して副作用のあるアクションを開始しないこと、およびアプリケーションが受信したリクエストのリファラー ヘッダーをチェックし、アンチ ヘッダーを利用することが重要です。 CSRF トークン。
基本的には、同じドメインから提供されたスクリプトのみが、他のオブジェクトとプロパティに無制限にアクセスできることを意味します (したがって、.js
名前付き関数が定義されたファイルがある場合は、同じドメインでホストされている他のファイルから呼び出すことができます)。
そのため、別のドメインからスクリプトを提供している場合は、制限が適用されます。
このポリシーが存在するのは、別のドメインにある JavaScript ファイル (そのようなファイルへのリンクを挿入する JavaScript コードなど) へのリンクを挿入するのは簡単すぎるためです。これはセキュリティ上のリスクです。実際には、そこにあるコードだけではなく、現在のサイトからのコードのみを実行する必要があります。