CakephpにはFormヘルパーという便利にHTMLタグを出力してくれる機能があります。
そして、Formヘルパーを使用することで、定番(というか最低限?)のセキュリティ対策であるCSRFを仕込むことも簡単です。
WEBサービスの歴史的経緯から、単にHTMLで作成されているフォーム群を見かけることは今でも珍しくありません。
(多分、受託系だと、メンテナンス放置されてる案件とかね。。よーあるパターン)
簡易的にCSRFトークンを仕込む方法です。
モデルと紐付かないフォームは最初の引数に nullを渡すと作れます。
<?= $this->Form->create(null, ['url' => ['controller' => ‘hoge’, 'action' => 'fuga']]) ?> // 素のHTMLフォームがあるとする <?= $this->Form->end() ?>
<form> の次の行の display: none の div内に_csrfToken
という名前のトークンが付与されるはずです。※ ChromeだとCtrl+U、もしくは右クリックでメニュー「ページのソースを確認」
リクエストに対し、トークンの内容を確認する
// Controller内とかで実行 var_dump($this->getRequest()->getParam('_csrfToken'));
Cake3 or Cake4ではデフォルトでクロスサイトリクエストフォージェリー(CSRF)ミドルウェアが有効になっているはずなので、src\Application.php
で各種設定が行えます。
CsrfProtectionMiddleware
https://book.cakephp.org/3/ja/controllers/middleware.html#csrf-middleware
フレームワークを使用することで「あーCSRF対策もせなな・・」という面倒臭さも、割かし簡単に解決できます。