7

HTML DOM や Javascript の作成者がクロスドメイン リクエストを許可しないことにしたのはなぜですか?

許可しないことによる非常に小さなセキュリティ上の利点がいくつか見られますが、長い目で見れば、Javascript インジェクション攻撃の威力を弱めようとする試みのようです。いずれにせよ、JSONP ではすべて意味がありません。これは、javascript コードを作成するのが少し難しく、サーバー側の協力が必要であることを意味します (ただし、独自のサーバーである可能性があります)。

4

4 に答える 4

11

実際のクロスドメインの問題は巨大です。SuperBank.comhttp://www.superbank.com/transfer?amount=100&to=123456が に $10,000 を口座番号 123456 に送金するリクエストを内部的に送信したとします。あなたが私のウェブサイトにアクセスでき、あなたが SuperBank にログインしている場合、私がしなければならないことは、AJAX リクエストを SuperBank.com に送信して移動することだけです。あなたの口座から私の口座に数千ドル。

JSON-P が受け入れられる理由は、悪用される可能性が非常に低いからです。JSON-P を使用する Web サイトは、データが公開情報であると宣言しているように見えます。その形式は不便すぎて、それ以外の方法で使用することはできないからです。しかし、データが公開情報であるかどうかが不明な場合、ブラウザーは公開情報ではないと想定する必要があります。

于 2010-06-24T19:32:03.220 に答える
9

クロスドメイン スクリプティングが許可されている (または巧妙な Javascripter によってハッキングされている) 場合、Web ページは別の Web ページのデータにアクセスできます。例: mail.google.com を開いているときに、joeblow.com が Gmail にアクセスできます。joeblow.com は、あなたの電子メールを読んだり、連絡先をスパムしたり、あなたからのメールを偽装したり、メールを削除したり、その他多くの悪いことをする可能性があります。

于 2010-06-24T19:31:14.687 に答える
1

質問のアイデアのいくつかを特定のユースケースに明確にする..

通常、クロスドメイン ポリシーは、自分自身を保護するためのものではありません。Web サイトの他のユーザーから Web サイトのユーザーを保護する (XSS)。

JavaScript を含む任意のテキストを入力できる Web サイトがあるとします。一部の悪意のあるユーザーは、「自己紹介」フィールドに JavaScript を追加することにしました。あなたのウェブサイトのユーザーは、彼のプロフィールをナビゲートし、ブラウザでこのスクリプトを実行します。このスクリプトは、Web サイトに代わって実行されるため、Web サイトの Cookie などにアクセスできます。

ブラウザーがクロス ドメイン通信を許可している場合、このスクリプトは理論上、ユーザーの情報を収集し、悪意のあるユーザーが所有するサーバーにアップロードすることができます。

于 2012-04-12T01:01:14.810 に答える
0

違いは次のとおりです。クロスドメイン AJAX を使用すると、悪意のあるサイトがそのサイトに代わってブラウザを操作できるようになりますが、JSON-P を使用すると、悪意のあるサーバーが単一のドメインのページを改ざんすることができます (さらに、ブラウザにそのドメインに対して操作を行わせることができます)。ただし、(重要な部分) 提供されたページが悪意のあるペイロードをロードするために道を外れてしまった場合のみです。

そうです、JSON-P にはセキュリティ上の影響がありますが、それらを使用する Web サイト側で厳密にオプトインされています。一般的なクロスドメイン AJAX を許可すると、はるかに大きなワームの可能性が開かれます。

于 2010-06-24T19:38:05.153 に答える