最近は IE も消えたので Sec-Fetch-Site が same-origin であることをチェックして CSRF 対策としています
トークンを送ったり 独自のヘッダーをつけたりに比べるとかなり楽です
ですが この方法 問題がありました
Sec-Fetch-Site ヘッダーはブラウザが自動で送信するものですが HTTPS サイト限定のようです
HTTP サイトには送信されません
これのせいで HTTP のページで使おうとすると必要なヘッダーが送信されないので全て不正なリクエストとみなされます
一般公開するようなもので CSRF 対策が必要なサービスなら基本 HTTPS でしょうけど そういったもの以外ではありえます
一般には公開せず ネットワーク内のみでアクセスできるサーバーだったり 開発環境だったり
開発環境でも localhost という名前なら特別で HTTP でも HTTPS 同様に Sec-Fetch-Site ヘッダーが送信されていました
ですが 別端末からアクセスするケースなど localhost 以外でアクセスするケースもあって そういうときに動かなくなります
開発中やネットワーク内のみならそもそも攻撃する人がいないはずなので Sec-Fetch-Site ヘッダーを見ないようにして対処してますが 開発中に動かさないと動作確認ができないですし なにかとスッキリしないです
HTTP でもとりあえず送ってくれたらいいのに