POSTに対するクロスサイトJSON応答を取得するためのベストプラクティス
-
03-07-2019 - |
質問
複数のサブドメインを持つイントラネットで作業しています。各サブドメインを管理しているため、クロスサイトリクエストのセキュリティは問題になりません。 JSON応答を含むPHPスクリプトがあり、重複することなく複数のサブドメインから呼び出したい。 GETリクエストの場合、AJAXおよびJSONPでこれを行うことができますが、POSTリクエストでは機能しません。私が見るいくつかの代替案は、どれも非常に良いようには見えません:
- 最小限の応答でローカルサブドメインのコピーにPOSTし、JSONPを使用して中央の場所から完全な応答を取得します
- JSONを使用してローカルサブドメインのコピーへのPOSTとGETの両方
- mod_rewriteを使用して、JSONを使用したバックエンドの中央スクリプトでローカルURLを使用します
- シンボリックリンクを使用して、JSONを使用したバックエンドの中央スクリプトでローカルURLを使用します
もっと簡単なものが欠けていますか?ここで何をしますか?
解決
こちらをご覧ください https://developer.mozilla.org/En/HTTP_access_control ページ。必要なものすべて-投稿要求を受け入れるスクリプトすべてにヘッダーを追加します。 例:
他のヒント
サーバー側で簡単なリフレクターを作成できます。 ajaxリクエストを適切なドメインに単に渡すスクリプトを各ドメインに追加します。このスクリプトは非常に単純で(1行または2行のコード)、クロスサイトスクリプティングの問題を回避し、既存のスクリプトに複雑なビジネスロジックを複製する必要がないことを意味します。
サーバーに余分な作業が発生しますが、それは問題ではない可能性があります。
管理しているサイトで見つけることができる最も近いコード例は次のとおりです。ここでは、HTTPS接続(まだサポートしていません)でGoogles Chart APIを使用できるようにする必要がありました。解決策は、呼び出しを渡す次のスクリプトを追加することでした...
<?php
// Set header so our output looks like a PNG
header("Content-Type: image/png");
// Reflect the image from googles chart API
echo file_get_contents('http://chart.apis.google.com/chart?'.サーバー側で簡単なリフレクターを作成できます。 ajaxリクエストを適切なドメインに単に渡すスクリプトを各ドメインに追加します。このスクリプトは非常に単純で(1行または2行のコード)、クロスサイトスクリプティングの問題を回避し、既存のスクリプトに複雑なビジネスロジックを複製する必要がないことを意味します。
サーバーに余分な作業が発生しますが、それは問題ではない可能性があります。
管理しているサイトで見つけることができる最も近いコード例は次のとおりです。ここでは、HTTPS接続(まだサポートしていません)でGoogles Chart APIを使用できるようにする必要がありました。解決策は、呼び出しを渡す次のスクリプトを追加することでした...
<*>SERVER['QUERY_STRING']);
?>
このような場合はRESTアプローチを使用します。 RESTの詳細については、Googleを検索してください。
それらがすべて同じドメインのサブドメインである場合、次のコードをすべてのページに追加できます。
document.domain = 'domain.com';
次に、単純なxmlHttpRequestを使用します。