1

ユーザーの認証を必要とする安全な Web サイトがあり、Ajax クロスドメインの問題を回避できるように、JSON-P を介して API から機密データをクライアントに返したいと考えています。私はクライアントとサーバーの両方を所有しているため、クライアントの観点からのセキュリティについては心配していません (つまり、サーバーから悪意のある js を読み取る)。

クロスサイト リクエスト フォージェリを防ぐために JSON-P を保護する方法を研究してきましたが、Referer をチェックすることがデータを保護するための絶対確実な方法であるかどうかを明確に判断することはできませんでした。私が理解しているように、呼び出しは JavaScript からのものであり、ヘッダーは変更できないため、この状況では Referer ヘッダーを偽装することはできません。これは正しい仮定ですか?

リファラーのチェックがJSON-Pを保護するために機能する/機能しない理由の明確な例をいくつか教えてください。

ありがとう!

編集:

明確にするために、JSON-P は Spring Security を介して保護されるため、Referer ヘッダーだけで保護されるわけではありません。ここでは、セッションハイジャックについて主に懸念しています...

4

2 に答える 2

1

リファラーのチェックがJSON-Pを保護するために機能する/機能しない理由の明確な例をいくつか教えてください。

Referer送信が保証されていないため、次のようになります。

  • 存在し、信頼できるサイトと一致する必要がある場合は、ブラウザーまたはネットワーク設定がそれを送信しないすべての人に対してアプリを壊します。

  • それを回避するために存在しないことを許可すると、それらのユーザーだけでなく、攻撃者がリファラーを送信しないように誘導できるすべての人 (特に、HTTPS ページから) に対して攻撃を受ける可能性があります。

  • また、プロキシで適切に動作するには、no-cacheすべての応答に対して必要です (またはVary: Referer、IE では正しく機能しません)。

リファラーチェックは脆弱で問題のある方法であり、時には必死の最終手段として使用されることもあります...選択できるときに構築すべきものではありません。両方のサーバーを制御している場合、いずれかのスクリプトによって認識される要求トークンを 1 つのページに簡単に含めることができます。

于 2012-05-17T23:09:57.960 に答える
1

Jsonp URL は、通常の curl コードを使用して呼び出すことができます。Http refer は簡単に偽造できます。

于 2012-05-17T14:06:54.430 に答える