CAPTCHA
投稿フォームにCAPTCHA. セッション内で1回だけ。別のセッションでまたCAPTCHA.
ログインで CAPTCHA を解かせるのもいいけど、ログインせずに使うユーザーもいる。セッション内で1回だけ CAPTCHA を解かせることにして、ログインフォームでも解くことができるようにするといい。至る所に CAPTCHA を仕掛けておくけど、解答済みだったら CAPTCHA 部分だけを非表示に。
CAPTCHAに失敗しても投稿受け付け。失敗したことを投稿の属性として記録するだけで、そのまま受け入れる。失敗したことはタイムラインのフィルタリング条件にできる。 CAPTCHAをパスしたかはユーザーの属性。一度通過すれば以降は管理者がリセットするまで白判定。
reCAPTCHA v3を使うなら、定期的に審査して、スコアをユーザーの属性にする。投稿にはそのスコアを記録して、閲覧時にフィルタリングする。デフォルトのしきい値を調整すれば、はじめから非表示にできる。スコアだけで投稿を弾いたりはしないし、タイムラインなどの一覧に載らないようにするだけ。弾くのはbotがUIを使ったときだけ。