CSRFProtectionを有効にしていると、CSRF attack detectedになり続ける問題

Symfonyのformで、悪名高き(?)_csrf_tokenを有効にしていると、ブラウザの「戻る」ボタンを押した途端に悪夢が始まってしまうようだ。
どういう事かというと、_csrf_tokenがinvalidだろうがnullだろうが、送られてきた値をそのまま返すようなのだ。ということは、一度でもinvalidなtokenを送ってしまうと、もう無限loopに捕まってしまうというわけだ。
問題は、token自体は毎回生成はされているのに、$this->form->bind()が実行されると、出力する際に受け取った値しか出力しないということ。そこで、受け取った値に関わらず、_csrf_tokenを更新するパッチを書いてみた。が、何か問題があると指摘されそう。例えば、無駄にtokenを生成しすぎだとか、実はワンタイムトークンではないとか、2回submitを実行すれば(1回目で_csrf_tokenが再生成されて)submitできるのは仕様??とか。やや荒療治な感じなので悪しからず。


以下がpatch付きticketのページ。
http://trac.symfony-project.org/ticket/9299


とりあえずは、ログインページや検索ページでは、CSRFProtectionを無効にすべきかもしれない。送信してもまた同じページに戻ってくる場合(検索フォームとか。多分sfFormはこの使われ方を想定していないから今回みたいな問題があるのだと。)のうち、そこにあるのがupdateなCSRFを対策したいformの場合(チャットとか)は、このパッチが必要ではないかと思うのです。