1

このSOの投稿には、この政治性を回避するためのさまざまな方法がリストされています。

ただし、2番目のオリジンにアクセスできない場合に、これらのいずれかに該当するかどうかはわかりません。

特にこれは、3番目の回答で、2番目のオリジンからスクリプトを呼び出すスクリプトを挿入します。

<script src="http://..../someData.js?callback=some_func"/>

しかし、一般的に、これらの方法のいずれかで、オリジン1にいて、オリジン2にアクセスする必要がある場合に回避できますか?

4

3 に答える 3

2

明らかにこれは不可能です。さもなければ、ポリシーは役に立たないでしょう。それはすべて、3番目のホストからデータをプルできないようにすることです。これはまさにあなたがやろうとしていることです。

ブラウザには、「プライベート」ローカルネットワークの一部と「パブリック」グローバルインターネットの一部の概念がないことに注意してください。したがって、このポリシーは、任意のJavascriptコードがローカルネットワーク上のリソースにアクセスするのを防ぐために存在します。

于 2012-05-21T21:33:21.343 に答える
2

はい、 2番目のサーバーを制御せずに同一生成元ポリシーを回避することはできますが、2番目のサーバーの所有者の協力なしにそれを行うことはできません。多くの場合、あなたの例のように、これはJSONP規則と協力することによって行われます。最初のサーバーを介して2番目のサーバーにリクエストをプロキシしない限り、これを行う他の方法はありません。

于 2012-05-21T21:35:49.560 に答える
0

いいえ、それが全体のポイントです。SOPをオフにできるのは、サーバーがCORSまたはJSONPなどを介してSOPを明確に許可している場合のみです。

スクリプトレットの挿入は攻撃です(意図が良いかどうかに関係なく)。私がドメインを所有していて、誰かがそれをした場合、それらは禁止され、当局に報告されます。

最も近い方法は、サーバー側プロキシを使用することです(つまり、jsにサーバーにリクエストを送信させ、サーバーからサードパーティにリクエストを送信させます)。

于 2012-05-21T21:34:00.750 に答える