2016-04-23 9 views
2

から来ます最初のページ呼び出しページmydomain.com/test.phpは、httpリクエストをmydomain.com/request.phpと呼びます。POSTリクエストは、私は私のサイトの1特定のページから来て、簡単なポスト要求を持っているページ

mydomain.com/request.phpページで、リクエストが元のページから来たものがmydomain.com/test.phpでした。

私はリクエストがこの正確なページmydomain.com/test.phpからのみで、他のドメインやページからは送信できないようにしたいと考えています。

私はajaxとjavascriptを使用してリクエストを行います。したがって、すべてが安全であることを保証する隠し認証を追加できないと思います。各値は元のページソースコードに表示されるためです。

+3

[php superglobal](http://php.net/manual/en/reserved.variables.server.php) '$ _SERVER ['HTTP_REFERER']'は役に立ちます –

+4

@JeffPuckettII '$ _SERVER ['HTTP_REFERER '] 'は推奨されていない/信頼できないし、理由はここにあるhttp://stackoverflow.com/a/6023980/ - 編集:そのコメントをupvoting誰でも、これを読んでいない。 –

+3

受信HTTPリクエストの送信元を保証することはできません –

答えて

1

クロスサイトリクエスト偽造(XSRF)から身を守る方法を探しているようです。

XSRFから保護する一般的な方法は、あなたのページ(一部では<script> var mySecret = <?php (someSecret) ?>)に時間制限されたキーをレンダリングし、これらを追跡することです。たとえば、セッションIDの最初の文字を使用して、リクエストデータにこのフィールドが含まれているかどうかを確認できます。 ...&secret=mySecretこのデータ属性の最初の文字を持つセッションIDがある場合はその要求を受け入れ、そうでない場合はサーバー上で拒否します(エラーコード403が付いている可能性があります)。

ので、この質問は、私のサイト

にXSRFを避けるために、情報セキュリティのスタック交換に頼まれるべき

のベストプラクティスでしょう。

+0

ありがとう私はこれのような何かをやった。私は鍵を書いてからそれを再確認します。 – Brana

関連する問題