問題タブ [same-origin-policy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
security - 新しい Facebook Javascript SDK が「同一オリジン ポリシー」に違反しないのはなぜですか?
新しい Facebook Javascript SDK を使用すると、どの Web サイトでも Facebook ユーザーとしてログインし、ユーザーのデータを取得できます...
したがって、Facebook の Javascript を含む www.example.com になりますが、私が思い出したように、そのスクリプトは www.example.com の起源であると見なされ、違反であるため facebook.com からデータを取得できません。 「同一オリジンポリシー」の。そうじゃない?その場合、スクリプトはどのようにデータをフェッチしますか?
php - 同一生成元ポリシー -- PHP を呼び出す JavaScript
これが人気のあるトピックであることは知っていますが、完全に包括的な答えをまだ見つけていません。
私は、「顧客」が Web サイトに Google マップを配置する簡単な方法を作成しようとしています。これは、顧客 (またはそのサブセット) の位置を地図上にプロットします。顧客は、PHP スクリプトによってオンザフライで XML に変換される MySQL データベースにいます (Google の例のように)。これは私の Web サイトでは問題なく動作しますが、別の Web サイトで試してみると、xmlHTTPRequest は別のドメインにあるため、PHP を見ることができません。
元のドメインの PHP ファイルを読み取るだけの別のドメインに別の PHP ファイルを書き込むことで、これを回避できます。しかし、すべてのお客様がサーバーで PHP を実行しているわけではありません。JavaScript を使用してデータベースから XML 結果を返す方法はありますか?
いくつかのポイント:
xmlHTTPRequest を作成する JavaScript は、まだサーバー上にあります。クライアントはスクリプト タグからそれにリンクしています。それで十分かもしれないと思ったのですが、「オリジン」(とにかく Chrome によると) はまだドメイン #2 として認識されています
これは素晴らしいことです。xmlHTTPRequest で絶対参照を使用すると (例: request.open('GET', 'http://mydomain.com/api/foo.php', true))、IE では失敗しますが、相対参照 ('/api/foo.php') を使用すると機能します。
よくわかりませんが、JSON を使用できますか? 「script src="http://..../someData.js?callback=some_func"」を見たことがありますが、方法がわかりません.「someData.js」をJSONのように見せますか? (私は関数の観点から非常に考えていますが、これはおそらく間違っていますか?)。
追加してみました: header("Access-Control-Allow-Origin: *"); XML を出力する PHP の先頭に移動しますが、実際にはあまり機能していません。
クライアントのサーバーで PHP ラッパーを使用する場合、単純な file_get_contents や fopen ではなく、cURL リクエストを使用する利点は何ですか?
申し訳ありませんが、多くの質問がありますが、ご指導いただければ幸いです。
多大な感謝、
マット
php - 私のコードは同一生成元ポリシーの犠牲者ですか?
これが私のコードです。この形で「同一生成元ポリシー」に苦しんでいるのかどうか、親切に見てください。HTMLのドメインは(http://127.0.0.1/jqload.html)&phpファイル(http://127.0.0.1/conn_sql.php)です。これはjson形式です:[{"options": "smart_exp"}、{"options": "user_int"}、{"options":"blahblah"}]実際にHTYMLで受信したjsonデータをユーザーに追加したい入力&私はそれに苦しんでいます。構文解析にevalを使用する場合、ここに置くことをポイントすると問題なく機能します。しかし、JSON.parseを使用して解析すると、コード全体が機能しなくなり、このエラーメッセージが発行されます。「重要:デプロイ前にjson2.jsからこの行を削除してください」。私は他の質問のために私のコードをstackoverflowフォーラムに置きました、そして私は私のコードが「同一生成元ポリシー」に苦しんでいると言われました これにより、JSONデータの追加で問題が発生します。それで、私のコードがこのポリシーに苦しんでいるのを親切に見ることができますか?ファイルが異なるドメインに存在するかどうかを制限することを知っているので、そのポリシーに苦しんでいるのではないかと疑っていますが、ここでは両方のファイルが隣り合って存在しています。
コード:
javascript - jQueryとブラウザーの同一生成元ポリシー(ODataを使用)
ODataエンドポイントをクエリするためのAJAXアプリケーションを構築しています。Netflix ODataフィードでいくつかのテストを行っていましたが、取得できないものが見つかりました。
URL( http://odata.netflix.com/v1/Catalog/Titlesなど)に対して.ajax()リクエストを行うと、「OriginnullはAccess-Control-Allow-Originで許可されていません」というエラーが表示されます。 。ただし、同じURLをブラウザに入力すると、リクエストが通過し、応答が返されます。
ここで私が得ていない根本的な違いは何ですか?ブラウザはどのように同一生成元ポリシーをバイパスしていますか?
javascript - ツイートボタンのクリックを追跡する方法は?
Google Analyticsを介してツイートボタンのクリックを追跡したいのですが、ツイートボタンは別のドメインのコンテンツを含むiframeです。ツイートボタンクリックのコールバックを追加するためのトリックはありますか?
javascript - 一部のクロスドメインJSONリクエストが失敗するのに、他のリクエストは失敗しないのはなぜですか?
JSONのセキュリティビットを理解するのに少し問題があります。理論的には機能しないはずのことが、機能しているように見えることが多いからです。ドメインAにあるページのスクリプトからの呼び出しであるAFAIKは、ドメインBからデータを受信できるとは想定されていません。ただし、以下のコードでは、1つの外部ドメインへの呼び出しは失敗しますが、別のドメインは通過します。また、どちらもパックされたJSON呼び出し(jsonp)ではありません。
どうしてこれなの?両方がブラウザのセキュリティチェックを通過することを禁止されるべきではありませんか?ChromeとFirefoxでも同じ結果が得られます。dropbox.comで以下のhtmlページをホストすると、Chromeから次のエラーメッセージが表示されます。
XMLHttpRequestは http://www.odinfond.no/rest/fund/calc/fundReturn?&id=300&oneTimeInvestment=100000&oneTimeInvestmentDate=2009-11-01&endDate=2010-11-01¤cy=NOKをロードできません。Origin http://dl.dropbox.comは、Access-Control-Allow-Originでは許可されていません。
この直接リンクをクリックすると、呼び出しが通過した場合に取得したであろうJSON応答を確認できます。他のサービスへの呼び出しは正常に戻ります。以下のコードをdropboxでホストします。ここで試してみてください。
ajax - Ajax、サブドメイン、200 レスポンス、画像 -- わかりましたか?
これは、 AJAX、サブドメイン、および 200 OK 応答(およびJavaScript 同一生成元ポリシー - 異なるサブドメインにどのように適用されますか? )と非常によく似た質問ですが、ひねりがあります。次のような状況があります。
- ドメイン (www.example.com)
- サブドメインのページ (sd.example.com/cat/id)
- 別のサブドメイン (cdn.example.com) に対して ajax スタイルのリクエストを行う必要がある
前述の質問とは対照的に、私が求めているのは画像です。
- 画像の GET リクエスト (jQuery $.load() を使用)
これは問題なく動作しているようです。問題なく動作していたので、誰かが Firebug でエラーを生成していると指摘したとき、同一生成元ポリシーがすぐには思い浮かびませんでした。
- 画像は localhost でロードされます ( test.sd.example.com/cat/idの apache VirtualHost URL)
ただし、リンクした質問のおかげで思い浮かんだので、本番環境ではこれが確実に機能しないのではないかと心配しています。
- これは本番環境で引き続き機能しますか? また、クロスブラウザーで確実に機能しますか?
回答: いいえ --機能しているように見えただけです。それは本当ではなかった
- そうでない場合、どうすれば修正できますか? (私はJSONP画像ができるとは思わない...できますか?)
回答: 画像の src の設定を続行し、load イベントがトリガーされるまで表示を待ちます。
- もしそうなら、どうすれば Firebug エラーを止めることができますか? 私ができる場合。(彼らは仲間の開発者を怖がらせています。)
回答: 上記と同じ -- 実際に画像ファイルの GET リクエストを実行するステップを取り除きます。
初期コード
javascript - 動的な画像の読み込みに対する JavaScript の同一生成元ポリシーの影響
JavaScript に同じオリジン ポリシーがある場合、別のドメインから画像を動的に読み込めないということですか?
json - JSONP を使用しない getJSON リモート リクエスト - サーバー
リモート サーバーから JSON データを呼び出そうとしていますが、サーバーは有効な JSONP 形式のデータを返さず、有効な JSON データのみを返します。(バリデータで確認済み)
getJSON リクエスト ( &callback=? を使用) を行うと、有効な JSON が返されますが、有効な JSONP ではないため、コールバック関数がトリガーされません。
返された JSON データにアクセスする良い方法はありますか?
ajax - Google Chrome --allow-file-access-from-files が Chrome Beta 8 で無効になりました
jQuery と Microsoft Seadragon テクノロジを使用して AJAX アプリケーションを開発しています。
html5 キャンバス関数 toDataURL にアクセスする必要があります。
Google Chrome では、同じオリジン ルールがこの関数に適用されます。つまり、ローカルで実行されるページ ( file:///
URL に が含まれる) が同じオリジン ルールを満たさず、例外がスローされます。
Chrome 7 では、オプションでアプリケーションを起動すると、ローカル ファイル--allow-file-access-from-files
から呼び出すことができます。canvas.toDataURL()
ただし、同じオプション ( ) で Chrome Beta 8 を起動すると、ローカル ファイルで --allow-file-access-from-files
の呼び出しが許可されないようです。canvas.toDataURL()
Chrome はこのオプションをあきらめたの--allow-file-access-from-files
ですか、それとも完全なリリースではなくベータ リリースであるため無効になったのですか?
ありがとう!