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())));
}

正式版リリース直前に勢いで入れたクラスとはいえ、ちょっと考慮不足でした。ほんとすみませんでした。