2011-06-30 14 views
4

投稿フォームがあります.9つのフィールドがあり、そのうち6つは検証が必要です。ファイルサイズとファイルタイプ検証のアップロードフィールドがあります。PHP CSRFフォームトークン+検証アドバイス

CSRFが動作しないようにランダムトークンを生成しますが、トークンを使用するときに正しい検証方法は何ですか?

同じファイル内で検証を行うと、検証の再読み込みでトークンが再生成されます。 (これを防ぐことができますか?isset()を試しましたが、まだ再生します)。しかし、同じファイルを使用すると、ユーザーの名前と電子メールがセッションに格納されなくなります。

はすなわちhttp://www.example.com/form?n=1

別のファイルを使用しても、フォームデータを格納意味し、その後、戻って各エラーのURLでの基本的な変数をフォームにリダイレクトし、別のファイル内の検証を行うには、それがベストですリダイレクトにエラーが存在する場合は、フォームに再投入することができます。

喜んでお寄せいただきありがとうございます。

答えて

6

私はthis article by ChrisがCSRFが何であるかを説明し、それをどう回避するかについて非常によくわかりました。

+1

おかげで、そのために、彼は本の中でよりわずかに良い、それをカバーしています。 –

+1

'md5(uniqid(rand()、TRUE));'セキュリティコンテキストに対して信頼されるべきではありません。 https://stackoverflow.com/a/31683058/4357238 – Edward

1

経験によると、CodeIgntierは、他のセキュリティメッシュの中でも偉大なCSRF implementationを実行します。私はプロセス全体をよく理解するためにコードを練ることをお勧めします。 thisも参照してください。

関連する問題