1

いくつかの内部 Web アプリケーションがあります。それらの 1 つは、他のすべてのアプリケーションにアクセスする必要があります。問題は: Same-Origin-Policyです。

実際、私はそれを回避することができました。まず第一に、IE は Web セキュリティに関して非常にずさんです。そのため、実際にこれらの要求を実行するかどうかを尋ねられました。私が [はい] をクリックすると、彼はクロス サイト リクエストを実行しただけです。

しかし、ほとんどのユーザーは IE を使用しないため、IE を別のブラウザーで実行する必要がありました。というわけで、Google Chrome で動かしてみました。そして、いくつかの調査の結果、実行パラメーターを使用して Web セキュリティをオフにすると機能することがわかりました--disable-web-security。これでうまくいきました。残念ながら、ほとんどのユーザーはこの実行パラメーターを使用していません。したがって、別の解決策が必要です。

それからCORSに出会いました。CORS は Chrome に実装されているようですが、欠点が 1 つあります (私にとっては)。サーバー側でヘッダーを設定する必要があります。ここでは説明しませんが、これはダメです。

それで、私が実際に疑問に思っていたのは次のとおりです。

CORS を使用しているときにサーバーがリクエストを許可する必要があるのに、ブラウザーの Web セキュリティを無効にするとうまくいくのはなぜですか?

  1. Web セキュリティを無効にすると、ブラウザ内で正確に何が起こりますか?

  2. また、サーバー側でヘッダーを追加したり、セキュリティを無効にしたりせずに CSR を実行する別の方法はありますか?

前もって感謝します

編集: JSONPも問題外です

4

2 に答える 2

2

CORS を使用しているときにサーバーがリクエストを許可する必要があるのに、ブラウザーの Web セキュリティを無効にするとうまくいくのはなぜですか?

Same Origin Policy のポイントは、Mallory の悪意のあるサイトが Alice のブラウザを Bob のサイトに移動させ、Alice のデータを Mallory に公開するのを防ぐことです。

ブラウザでセキュリティを無効にすることは、事実上、「ボブの (または他の!) サイトで自分のデータを保護することは気にしない」ということです。これは、ブラウザーがオープン Web に近づこうとしている場合に行うのは危険なことです。このオプションは、開発をより便利にするために提供されています — 私はより制御されたソリューション (Charles プロキシの URL 書き換えオプションなど) を好みます。

CORS はボブのサイトで、「この URL には、マロリー (または他の特定のサイト、または全員) がアクセスしてはならないデータが含まれていないため、アクセスできます。公開データを含み、どの部分に非公開データが含まれているか。

Web セキュリティを無効にすると、ブラウザ内で正確に何が起こりますか?

前述のセキュリティ機能を無効にし、ユーザーのデータの保護を軽減します。

また、サーバー側でヘッダーを追加したり、セキュリティを無効にしたりせずに CSR を実行する別の方法はありますか?

プロキシ。同一オリジン ポリシー、特にリバース プロキシ方式を回避する方法を参照してください。

于 2013-02-28T15:23:22.230 に答える
1

私はあなたがAJAXリクエストを使用していると思います。ここに別の質問があります同一生成元ポリシーを回避する方法には、非常に詳細な回答があります。

Flash オブジェクトを使用できます (Flash にはこの問題はありません)。

また、「最悪の事態が発生する可能性について」http://blogs.msdn.com/b/ieinternals/archive/2009/08/28/explaining-same-origin-policy-part-1-deny-read.aspxおよびhttp ://en.wikipedia.org/wiki/Cross-site_scripting

于 2013-02-28T15:18:00.613 に答える