Ver. 2.6.0.1 の フォームで不具合が発見されました。
Ver. 2.6.0.1のフォームで1ページに複数のフォームがあると
送信ができない場合がある不具合が発見されました。
対象
- a-blog cms Ver. 2.6.0.1
- 一つのページの複数のFormモジュールがある
- CSRF対策のオプションがON(デフォルト: ON)config.system.yaml : form_csrf_enable
対策
/php/ACMS/GET/Form.php の35行目付近の csrf_tokenメソッド を以下のように修正ください。
/**
* CSRF Token埋め込み
*
* @param string & $tpl
*/
function csrf_token(& $tpl)
{
$Session = ACMS_Session::singleton();
if ( $Session->get('formToken') ) {
$token = $Session->get('formToken');
} else {
$token = sha1(uniqueString().'acms'.session_id());
$Session->set('formToken', $token);
$Session->save();
}
// token の埋め込み
$tpl = preg_replace('@(?=<\s*/\s*form[^\w]*>)@i', '<input type="hidden" name="formToken" value="'.$token.'" />'."\n", $tpl);
}この度はご迷惑をおかけしてしまい申し訳ございません。
今後ともa-blog cmsをお願い致します。