Security
CakePHP2.2でComponentを使用し、ユーザーがサイトの他のリンクをクリックした後、ブラウザの戻るボタンをクリックしてフォームに戻ると、フォームに黒穴ができていることに気付きました。
例えば:
家
新しい投稿リンクをクリックします(投稿はしません)
ニュースをクリック
新しい投稿に戻る
投稿しようとしています---> BLACK-HOLED!!
これを回避する方法はありますか?
ありがとう。
Security
CakePHP2.2でComponentを使用し、ユーザーがサイトの他のリンクをクリックした後、ブラウザの戻るボタンをクリックしてフォームに戻ると、フォームに黒穴ができていることに気付きました。
例えば:
家
新しい投稿リンクをクリックします(投稿はしません)
ニュースをクリック
新しい投稿に戻る
投稿しようとしています---> BLACK-HOLED!!
これを回避する方法はありますか?
ありがとう。
実際には方法があります。フォームを使用してページのブラウザキャッシュを無効にできるため、戻るボタンを押すと、新しいページ全体が新しいハッシュでサーバーから読み込まれます。
$this->response->disableCache();
それをControllerメソッドに入れるだけです。
いいえ、フォームの操作を避けることが目的であるため、できません。各フォームは、最初にレンダリングされたときに生成された一意のハッシュを取得します。このハッシュは、フォームが送信されるときにサーバー側でチェックされます。送信ボタンを押したときに2回目にフォームを送信しようとすると、ハッシュは無効になります。そのアクションのセキュリティ後チェックを無効にすることはできますが、セキュリティを犠牲にすることはありません。