安全なRESTful APIから取得したデータを表示するjQueryプラグインを開発しました。 APIは、基本認証とトークンによって保護されます。トークンを作成するための基本的な認証資格情報やロジックを漏洩しないように、私は基本的にそのように見えるproxy.phpにそれらを移動:安全にphpプロキシ経由でJavascriptで保護されたAPIにアクセスするには?
$url = "http://the-api.com/path";
$context = stream_context_create(
array(
'http' => array(
'header' =>
"Authorization:Basic " . base64_encode("$username:$password") . "\r\n" .
)
)
);
$response = file_get_contents($url, false, $context);
header("content-type: application/json");
header("Access-Control-Allow-Origin: *");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400');
header("Access-Control-Allow-Methods: GET, OPTIONS");
header('Access-Control-Allow-Headers: X-Requested-With, Origin, Content-Type, Authorization');
return $response;
それは必要な資格情報を使用して要求を転送しての応答を返します。 API。ここまでは順調ですね。資格情報はJavascriptコードに含まれていません。 しかし、他の人はproxy.phpを呼び出すだけで同じリクエストを実行できます。 jQueryプラグインだけがproxy.phpを正常に呼び出せることを確認する方法はありますか?クッキーとトークンの組み合わせでできますか? proxy.phpは、jQueryプラグインと同じホスト/ドメイン上にあります。
theresの道はありません... –
あなたはそのproxy.phpがajax呼び出しだけ許可されているのを防ぐことができます。このSOの質問はあなたを助けるかもしれません。 http://stackoverflow.com/questions/1393904/ajax-only-access –
[secure a php proxy](https://stackoverflow.com/questions/13440663/secure-a-php)を見てみるとよいでしょう。 -proxy) – ajoposor