Tokenクラスの不具合
すみません。Tokenクラスでちょっとヤバげな不具合がありました。
- Tokenクラスのcheckメソッドにおいて、リクエストパラメータとセッションパラメータのチェックを行っているが、セッションパラメータに何もはいってない場合を考慮していない。
上記の不具合のため、完了画面でTokenを使ったチェックをしている場合、2重サブミットは阻止できますが、直接完了画面をたたかれた場合、すり抜けが発生します。
お手数をおかけしますが、以下の修正を行ってください。
- 修正前
function check(&$request) { return ($this->getValue() == $request->getParameter($this->getName())); }
- 修正後
function check(&$request) { return (($this->getValue() != '') && ($this->getValue() == $request->getParameter($this->getName()))); }
正式版リリース直前に勢いで入れたクラスとはいえ、ちょっと考慮不足でした。ほんとすみませんでした。