2017-08-03 7 views
0

最初は同じオリジンポリシーが、異なるドメインからロードされたJSをページ上で実行できないことを意味しました。しかし、thisを読んだ後、thisthisが混乱しました。この主張は、スクリプトタグのsrcプロパティにJSをロードすると、ロードされたスクリプトがロードページと同じ起点を持つため、CDNや第三者からのすべてのもの(Googleアナウンスなど)がDOMなどに完全にアクセスできるようになります私には恐ろしいセキュリティ上の脆弱性のように見えます。つまり、CDNなどが侵害された場合、攻撃者は悪意のあるJSにサービスを提供する可能性があります。たとえば、複数のサイトからユーザー名/パスワードを盗むことができます。それで私はこれを正しく理解したのでしょうか?同じオリジンポリシー - まだそれを取得していません

+2

[security.se] Stack Exchangeでこれを重複しています。 https://security.stackexchange.com/questions/108835/how-does-cors-prevent-xss – Tom

答えて

1

これは正しく理解されました。第三者のスクリプトを読み込むであり、セキュリティ上のリスクは恐ろしく、広告ネットワークやアナリティクスプロバイダーを使用して他のウェブサイトに悪意のあるコンテンツを配信する機会が複数あります。

いいえ、same-origin-policyはこのシナリオを防ぐためのものではありません。これは、任意の他のドメインでXHR(および他の技術)を介してアクセスされることからユーザーに提供される機密データを保護することを目的としています。

-1

私は完全


あなたは正しく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クッキーを攻撃者に送り返すことを防ぐことはできません。

3

請求は、スクリプトタグのsrcプロパティにJSを読み込む場合にロードスクリプトがロードページと同じ起源を持っていることである、

はい。原点は、HTML文書がどこから来るかによって定義されます。 CDNまたは第三者(グーグルanayticsなど)からのすべてを意味

今はいDOMなど

への完全なアクセス権を持っています。このため、ページで実行できるJSのソースを完全に信頼する必要があります。

私にとっては、恐ろしいセキュリティ上の脆弱性のようです。つまり、CDNなどが侵害された場合、攻撃者は悪意のあるJSにサービスを提供する可能性があります。たとえば、複数のサイトからユーザー名/パスワードを盗むことができます。

これは危険です。 It has happened in the past

CDNを使用することを選択した場合は、CDNを使用することを選択した場合は、そのようなことが起こらないほどセキュリティが十分に良いと信頼する必要があります。


同じ原点ポリシーが実際に行うことは、See this answerです。

0

これは間違いなく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をサポートするブラウザを使用しているユーザーを保護するだけです。

関連する問題