最初は同じオリジンポリシーが、異なるドメインからロードされたJSをページ上で実行できないことを意味しました。しかし、thisを読んだ後、thisとthisが混乱しました。この主張は、スクリプトタグのsrc
プロパティにJSをロードすると、ロードされたスクリプトがロードページと同じ起点を持つため、CDNや第三者からのすべてのもの(Googleアナウンスなど)がDOMなどに完全にアクセスできるようになります私には恐ろしいセキュリティ上の脆弱性のように見えます。つまり、CDNなどが侵害された場合、攻撃者は悪意のあるJSにサービスを提供する可能性があります。たとえば、複数のサイトからユーザー名/パスワードを盗むことができます。それで私はこれを正しく理解したのでしょうか?同じオリジンポリシー - まだそれを取得していません
答えて
これは正しく理解されました。第三者のスクリプトを読み込むはであり、セキュリティ上のリスクは恐ろしく、広告ネットワークやアナリティクスプロバイダーを使用して他のウェブサイトに悪意のあるコンテンツを配信する機会が複数あります。
いいえ、same-origin-policyはこのシナリオを防ぐためのものではありません。これは、任意の他のドメインでXHR(および他の技術)を介してアクセスされることからユーザーに提供される機密データを保護することを目的としています。
私は完全
あなたは正しくCORS/SOPを理解
はなく、その使用のための参照を引用することができますので、私は私のコメントの答え作りました。
CORS & SOPは、XSS攻撃から保護するためのものではなく、ホストがデータにアクセスするユーザーを保護できるように設計されています。
https://security.stackexchange.com/questions/108835/how-does-cors-prevent-xss
TLから取られた、以下を参照してくださいしてください; DR:どのようにCORSは、XSSを防ぐのですか?それはしません。そうするつもりはありません。
CORSは、リソースホスト(HTTP経由でデータを利用できるサービス)がそのデータにアクセスできるWebサイトを制限することを目的としています。
例:トラフィックデータを表示するWebサイトをホストし、WebサイトでAJAXリクエストを使用しています。 SOPとCORSが存在しない場合、他のウェブサイトでは単にエンドポイントにAJAXingするだけでトラフィックデータを表示できます。誰でもあなたのデータを簡単に「盗む」ことができ、したがってあなたのユーザーとあなたのお金。
データの共有(クロス・ソース・リソース共有)が意図されている場合があります。あなたのウェブページにFacebook APIからの好きなものやものを表示するとき。これを達成するために単にSOPを除去するだけでは、上記のパラグラフで説明した理由のために悪い考えです。 CORSが導入されました。
CORSはXSSとは無関係です。JavaScriptを悪意のあるWebサイトに配置できる攻撃者は、正しいCORSヘッダーを送信するサーバーを設定することもできるためです。 CORSは、悪質なJavaScriptがセッションIDとpermloginクッキーを攻撃者に送り返すことを防ぐことはできません。
請求は、スクリプトタグのsrcプロパティにJSを読み込む場合にロードスクリプトがロードページと同じ起源を持っていることである、
はい。原点は、HTML文書がどこから来るかによって定義されます。 CDNまたは第三者(グーグルanayticsなど)からのすべてを意味
今はいDOMなど
への完全なアクセス権を持っています。このため、ページで実行できるJSのソースを完全に信頼する必要があります。
私にとっては、恐ろしいセキュリティ上の脆弱性のようです。つまり、CDNなどが侵害された場合、攻撃者は悪意のあるJSにサービスを提供する可能性があります。たとえば、複数のサイトからユーザー名/パスワードを盗むことができます。
これは危険です。 It has happened in the past。
CDNを使用することを選択した場合は、CDNを使用することを選択した場合は、そのようなことが起こらないほどセキュリティが十分に良いと信頼する必要があります。
同じ原点ポリシーが実際に行うことは、See this answerです。
これは間違いなくCDNを使用する際のリスクです。そのため、ブラウザではSubresource Integrity(SRI)を実装し始めています。このため、スクリプト/リンクタグにチェックサムを入れることができます。この例:ハッシュがロードされる実際のファイルと一致しない場合
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
crossorigin="anonymous">
、そのリソースがブロックされています。これは明らかに、SRIをサポートするブラウザを使用しているユーザーを保護するだけです。
- 1. クロスオリジンリクエストがブロックされました:同じオリジンポリシーでリモートリソースを読み取ることができません
- 2. XMPPと同じオリジンポリシーの問題
- 3. クロスオリジン要求がブロックされました:同じオリジンポリシーが、http:// xxx:xx/registerでリモートリソースを読み取ることを許可していません。
- 4. 私のREST APIと同じオリジンポリシー
- 5. まだwebdriver.chrome.driverを取得しても、そのプロパティを設定しても例外が設定されません。
- 6. まだ私のSoundCloud APIキーを取得していません
- 7. jQueryのUIテーマのリストをURLから取得する(同じオリジンポリシー)
- 8. 同じオリジンポリシーをより厳密に設定できますか?
- 9. ajax - データを取得できません(同じドメイン)
- 10. フッター内の同じ行にdivsを取得できません
- 11. 同じ保留中のインテントを取得できません。
- 12. データを取得していません
- 13. クロスオリジン要求がブロックされました:同じオリジンポリシーでhttp:// ........でリモートリソースを読み取ることができません。
- 14. カスタムリストアダプターが同じオブジェクトを取得しています
- 15. ハンドルバーの混乱私はそれを取得しません
- 16. Niktoの結果、私はそれを取得しません
- 17. Git無視しないでください、私はそれを取得しません
- 18. 同じ文字列が等しいはずですが、それらは同じではありません
- 19. python3でSHA1をハッシュしても同じ結果が得られません
- 20. AjaxでRESTサービスを使用する - 同じオリジンポリシー
- 21. ナンシーアレイは同じ形状ですが、ValueErrorを取得しています:xとyの最初の次元は同じでなければなりません
- 22. 保存された変数と同じ型がlocalStorageから取得されていませんか?
- 23. レスポンスを取得してLoadRunnerで同じ値をアサートします
- 24. Laravel同じデータを取得してページを設定します
- 25. Jquery Tablesorterが機能しません!それのどこが悪いんだい?
- 26. 私はスレッド同期をまったく取得しません
- 27. ストライプは同じページに投稿されていません
- 28. pythonが同じcmdウィンドウで実行されていません
- 29. jQuery Ajaxが同じページにロードされていません
- 30. オブジェクトが返されていません同じ
[security.se] Stack Exchangeでこれを重複しています。 https://security.stackexchange.com/questions/108835/how-does-cors-prevent-xss – Tom