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をお願い致します。