8

ドメイン間でデータを取得するサーバー側プロキシを作成することの単純さを考えると、クライアント側 AJAX がドメイン間で呼び出しを行うのを防ぐ最初の意図が何であったかについて、私は途方に暮れています。私は憶測を求めているのではなく、言語設計者 (または彼らに近い人々) から、単に開発者に軽度の不便をもたらすこと以外に、彼らが何をしていると考えていたかについての文書を探しています。

ティア

4

5 に答える 5

6

ブラウザがリバース プロキシとして動作するのを防ぐためですオフィスの PC からhttp://www.evil.comを閲覧しているとします。そのオフィスには、ローカル ネットワークからのみアクセスできるhttp://intranet.company.comの機密情報を含むイントラネットが存在するとします。 . クロス ドメイン ポリシーが存在しない場合、www.evil.com はブラウザをリバース プロキシとして使用してhttp://intranet.company.comに ajax リクエストを作成し、その情報を別のプロキシで www.evil.com に送信できます。 Ajax リクエスト。

これが私が推測する制限の理由の1つです。

于 2012-05-30T17:33:39.410 に答える
2

あなたが myblog.com の作成者であり、facebook.com に対して XHR を作成する場合、リクエストで Facebook の Cookie 資格情報を送信する必要がありますか? いいえ、それはあなたのブログからユーザーの個人的な Facebook 情報を要求できることを意味します。

そのためにプロキシ サービスを作成すると、プロキシは Facebook の Cookie にアクセスできません。

また、なぜ JSONP が問題ないのか疑問に思っているかもしれません。その理由は、作成していないスクリプトを読み込んでいるためです。Facebook のスクリプトが JS コードから情報を送信することを決定しない限り、アクセスすることはできません。

于 2012-05-30T17:14:16.213 に答える
2

この制限の最も重要な理由は、セキュリティ上の問題です。JSON リクエストをブラウザに提供させて、別のドメインへのリクエストで Cookie またはセキュリティ資格情報を受け入れさせる必要がありますか? クライアント環境に直接アクセスできないため、サーバー側のプロキシでは問題になりません。安全なサニタイズされた JSON 固有のリクエスト メソッドの提案がありましたが、まだどこにも実装されていませんでした。

于 2012-05-30T17:10:24.650 に答える
1

直接アクセスとプロキシの違いは、Cookie およびその他のセキュリティ関連の識別/検証情報であり、これらは 1 つのオリジンに完全に制限されています。

これらにより、ブラウザは機密データにアクセスできます。プロキシは、ユーザーのログイン データを認識していないため、そうしません。

したがって、プロキシは公開データにのみ適用されます。CORSと同様です。

于 2012-05-30T17:20:01.070 に答える
1

私はあなたが専門家の回答を求めていることを知っています.

  • サーバー側のプロキシを構築することは、まったく構築しないほど簡単ではありません。
  • サードパーティの JS ウィジェットのように常に可能であるとは限りません。ウィジェットを統合するために DNS 登録を宣言するようにすべてのパブリッシャーに依頼するつもりはありません。そしてdocument.domain、副次的な問題で彼のページを変更します。
  • 本で読んだようにサードパーティ Javascript 「クロスドメインリクエストを行う前に、中間トンネルファイルをロードする必要があります」 . 少なくとも、よりトリッキーなジャグリングで JSONP をゲームに入れます。
  • 上記の本からも、IE8 ではサポートされていませ
  • 人々が他の回答で説明したように、いくつかのセキュリティの問題があります。それらよりも多く、上記の本のサブドメインプロキシを使用したメッセージ交換の章 4.3.2を確認できます。

そして、私にとって最も重要なこと:

  • これはハックです.. JSONP ソリューションのように、標準的で、信頼性が高く、安全で、クリーンで快適なソリューションの時が来ました。

しかし、あなたの質問を読み直した後、私はまだ答えていないと思うので、なぜこの AJAX セキュリティなのですか? 、繰り返しますが、答えは次のとおりです。

アクセスする Web ページで、デスクトップから任意のコンピューターまたはサーバーにオフィスのイントラネットに電話をかけられるようにしたくないため

于 2012-05-30T17:53:40.833 に答える