誤ったcsrfトークンを送信した際の例外処理
// CsrfProtectionMiddleware.php protected function _validateToken(ServerRequest $request) { $cookies = $request->getCookieParams(); $cookie = Hash::get($cookies, $this->_config['cookieName']); $post = Hash::get($request->getParsedBody(), $this->_config['field']); $header = $request->getHeaderLine('X-CSRF-Token'); if (!$cookie) { throw new InvalidCsrfTokenException(__d('cake', 'Missing CSRF token cookie')); } if (!Security::constantEquals($post, $cookie) && !Security::constantEquals($header, $cookie)) { throw new InvalidCsrfTokenException(__d('cake', 'CSRF token mismatch.')); } }
throw new InvalidCsrfTokenException(__d('cake', 'CSRF token mismatch.'をcatchして制御したい
試したこと
view側で
<input name="_csrfToken" type="hidden" value="sample">を記述
postで登録処理を実行すると、
$header = $request->getHeaderLine('X-CSRF-Token')に"sample"が入り、例外処理が走ることを確認済み。
回答1件
あなたの回答
tips
プレビュー