2

CSRF保護オプションをTRUEに設定し、form_open()を使用します。非表示の入力は正常に表示されます。ただし、フォームを送信してから「戻る」を押してもう一度送信すると、フォームを再度送信できるようになります。codeigniterの設定に何か問題がありますか、それともこのようになっているはずですか?

今、私は自分自身のトークンシステムを実装していることに気づいています。このシステムは、セッション変数を使用して非表示の投稿入力をチェックします。今は自分でもCSRFを実装しているような気がします。私が自分のやり方でそれを行う場合、CIの実装の必要性はまだありますか?

4

1 に答える 1

2

CSRFをtrueに設定すると、ランダムハッシュがform_open()に自動的に追加されますが、必要な場合にのみ再生成され、使用するブラウザーに応じて、戻るボタンの動作が決まります。更新せずに戻る場合は、ハッシュが正しくないはずです。httpリクエストを送信すると、トークンが更新されます。

CSRFはクロスサイト偽造を防ぐことを目的として機能しているため、ここで言及することは本当の問題ではありませんが、問題はPost / Redirect / Get(PRGパターン)で最も修正される他の問題です。 CSRFが無効であり、フラッシュデータを使用していない場合は、セッションからデータをフラッシュしたり、投稿したりできます。

于 2013-02-27T20:01:09.267 に答える