2011-08-21 13 views
6

POST要求がどのサーバから発生したのか正確に知る方法はありますか?POST要求の起点

私は私が特定の要求は私のウェブサイトから発信されたことを確認することができ、ひいてはこれが、私はあなたが$_SERVER["REMOTE_ADDR"]をしたい

おかげ

+0

リファラーをお探しですか?ユーザーがどこから来たの? –

+0

「あなたのウェブサイトから発信された」という意味ですか、「私のウェブサイトからブラウザに送信されたページのフォームから発信された」という意味ですか?彼らは非常に異なるものです。 –

+2

リファラーヘッダーには依存しないでください。信頼できず、内部システムに関する情報が漏洩しているとファイアウォールで取り除かれることがよくあります。 – Erlend

答えて

8

あなたはここで、クロスサイトリクエストフォージェリの保護を実装しようとしているようですねWebサーバーから配信されたHTMLから要求が送信されたことを確認する必要があります。ファイアウォールではしばしば取り除かれ、操作することができるため、リファラヘッダには依存しないでください。

この種類の保護を実装する方法については、いくつかの優れた情報源についてはOWASPを参照してください。基本的にはこのように書きます:

  1. が安全なランダムな値を生成し、ユーザーのセッションごとにHTMLフォームの

  2. に貼り付け、隠し値()

  3. たび、この値を含めますPOST要求がサーバーに戻ってきたら、非表示フィールドの値がユーザーのセッションの値と同じであることを確認します。要求が拒否されていない場合は拒否します。

ALUEは、ユーザーごとに一意であるため、攻撃者は単にあらかじめ入力値を使用してフォームを偽造し、自動的にJavaScriptでそれを掲示にユーザーをだましことができませんでした。攻撃者は、偽造されたフォームの隠しフィールドにどの値を含めるかを知らないため、要求は拒否されます。

+0

"POST要求がサーバーに戻ったときは、隠しフィールドの値がユーザーセッションの値と同じであることを確認してください。" ---うーん、私をdownvotedし、理由とチェック方法を説明しなかった**リクエストの原点**。 – zerkms

+0

洞察に感謝します! :D – Anant

+0

zerkms:私はあなたを落としたので、あなたは私を落胆させましたか? 私はその質問を超えて見ようとしました。 「私は特定のリクエストが私のウェブサイトから発信されていることを確認できる方法を実装しようとしているので、私のウェブサイトを安全に保つのに役立ちます」 彼はこのウェブサイト_ – Erlend

1

を確保する私のウェブサイトを保つのを助けるある方法を実装しようとしています。

関連する問題