2

私は JSONP がどのように機能するかを理解しようとしていますが、これまでの非常に基本的な理解から、ブラウザが強制する同じオリジン ポリシーを回避するために使用されているように感じます。ポリシーの背後にあるこの主な理由は、XSS エクスプロイト (ユーザーが銀行口座にログインしたときなど、貴重な情報を取得するためにユーザーのマシンにローカル Cookie を利用するスクリプトを誰かが挿入できるとします) などを防ぐためだと思います。 ...そうですか?) JSONP がこのポリシーを回避している場合、このようなものに悪用されることはありませんか? この質問が非常に基本的なものである場合は申し訳ありません....私は数日前にjavascriptをピックアップしようとし始めましたが、まだ頭を抱えようとしています:)

ありがとう!

4

4 に答える 4

2

JSONP を使用すると、ホスティング サイトが悪意のあるコードを挿入しないこと、または攻撃者が悪意のあるコードを挿入することを許可しないことを信頼することになります。

したがって、基本的に答えは次のとおりです。はい。そのレベルの信頼がない場合は、そのサイトの JSONP を使用しないでください。

于 2012-07-23T02:14:23.193 に答える
2

はい、できます。データを要求しているサードパーティを信頼できない場合、または誰かが間に何かを挿入できる場合は、JSONP を使用しないでください。JSONP を使用すると、サードパーティ サイトの任意のコードをページで実行できます。

于 2012-07-23T02:15:20.073 に答える
2

本当の問題は、その他のドメインを信頼しますか? 他のドメインには基本的に (JavaScript を介して) あなたのページへの完全なアクセス権が与えられているため、それらを信頼していることを完全に確認する必要があります。必要に応じて、ページを簡単に破壊したり、ユーザーをリダイレクトしたり、さらに悪いことに、Cookie を盗んだりする可能性があります (これは、さまざまな潜在的な問題につながります)。

から: http://james.padolsey.com/javascript/cross-domain-requests-with-jsonp-safe/

したがって、基本的に、はい、XSS エクスプロイトに使用できます。したがって、ホスト ドメインを信頼することが重要です。ホスト ドメインの整合性が不明な場合は、JSONP の使用を避けてください。

于 2012-07-23T02:20:59.990 に答える
2

scriptJSONP は、タグが外部ドメインからデータをロードできるという事実を利用しています。一般的なライブラリに CDN を使用するときは、常にこれを行っています。

そのため、JSONP だけでは XSS の悪用が容易になりません。「問題」は、scriptタグが任意のファイルをロードできることであり、これは JSONP とは関係ありません。外部ファイルをロードするときはいつでも、悪意のあるコードが含まれていないことを確認する必要があります。

于 2012-07-23T02:34:12.500 に答える