Cakephp4ではCsrfProtectionMiddlewareやFormProtectionがデフォルトで有効になっていると思います。
CakephpはFormヘルパーでフォームを作成することで、CSRF対策やフォーム改ざんなど、基本的なセキュリティ対策をしてくれる便利なヘルパーです。
しかし、Formヘルパーでフォームを作成しているのに、FormProtectionからBadRequestExceptionでオコされる場合があります。
そのような時は、まずはForm内にhiddenフィールドがないか確認してください。
基本的に自分で定義したhiddenフィールドでも「フォーム改ざん」とみなされます。
なので、hiddenとセットでunlockFieldを仕掛けておきましょう。
Form
<?= $this->Form->hidden('hoge') ?>
<?php $this->Form->unlockField('hoge'); ?>
特に、よくある例として、ReCaptchaトークンを仕込むときとか、どうしてもhiddenフィールドが必要になる時がありますね。
これ、過去に何度かやってたのに、なんで例外になるんじゃ!と忘れてたのでブログの刑になりました。