実現したいこと
cakephp3を用いてAjax通信を行おうとした際に、403エラーが出ました。
調べた結果、CSRFの問題でした。
FormHelperを用いず、ctpファイルにHTMLをベタ書きしていた為に起きたようです。
しかし、出来る限り、既存のヘルパーを使いたくありません。
Why?
「うるせぇ、んなもん気にすんな!!!」
と言われればそれまでなのですが、ヘルパーを使ったときに出力されるHTMLコードの成型がイヤです。
- **<?= $this->Form->create() ?>**を使って出力されるHTML
<form method="post" accept-charset="utf-8" action="/{controllerName}/{actionName}"><div style="display:none;"><input type="hidden" name="_method" value="POST"/><input type="hidden" name="_csrfToken" autocomplete="off" value="{tokenValue}"/></div>
- こうしたい!!
<form method="post" action="/{controllerName}/{actionName}"> <input type="hidden" name="_csrfToken" value="{tokenValue}"/>
根本的に
駄々みたいなレベルの問題だと思います、申し訳ございません。
改修案
- FromHelperのカスタマイズ
※どこのソースに手を入れればいいか分かりません…。
2. CSRFコンポーネントを無効にする
※最も安直な発想、しかし、「そういうことじゃないだろ」感がすごい。
3. CSRFコンポーネントを無効にし、独自のCSRF対策を作成する
※影響範囲が特定のコントローラorアクションのみで済むのなら…。
上記3つが、思いついた改修案です。
解決策・ご意見・説教問わず、ご教授お願いします。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。