私のフォーラム https://tzm.one では、ユーザー登録時にこのカスタムフィールドを設定しています。
しかし、スパムボットがこのドロップダウンで選択不可能な値を指定してアカウントを作成しているようです。これはほぼハニポットのように機能し、人間によるアカウントかどうかを判別できるかもしれません。ただし、これはセキュリティ上の問題になる可能性もあります。
私のフォーラム https://tzm.one では、ユーザー登録時にこのカスタムフィールドを設定しています。
しかし、スパムボットがこのドロップダウンで選択不可能な値を指定してアカウントを作成しているようです。これはほぼハニポットのように機能し、人間によるアカウントかどうかを判別できるかもしれません。ただし、これはセキュリティ上の問題になる可能性もあります。
これは、ボットがバリデーターを備えたフロントエンドのサインアップを使用しないためです。これらのスパムボットは、サインアップ API エンドポイントに対して自動化された POST リクエストを送信しています。また、フィールドがオプションの場合、バックエンドでのバリデーションが厳密ではなく、ペイロード値がデータベースに保存されてしまうこともあります。
根本的な解決策が何なのかはわかりませんが、より多くのスパム対策の設定やツールが必要になる可能性が高いです。(私は公開フォーラムで AI スパムボット対策を使用しており、それは非常に効果的です。サインアップにオプションのフィールドも設定しています。)
Data Explorer を使用して、フォーラムのすべてのユーザーを確認できます。これは機能すると思いますが、まだテストしていません(カスタムフィールドが user_field_1 であると仮定):
SELECT user_id, value
FROM user_custom_fields
WHERE name = 'user_field_1'
AND value NOT IN ('Bro', 'Sis', '')
最近、フィールドをテキスト入力からドロップダウンに変更した場合、これも不正なフィールド値を持つボットアカウントの一部の原因となっている可能性があります。
@Lilly さんの指摘は正しいです。ここにはバックエンド側での信頼性の欠如が十分ではありません。
この問題が提起されたため、プロフィールページにも同様の影響があるか確認したところ、ありませんでした。ユーザーがプロフィールを更新する際に値を適切にサニタイズしているため、そのサニタイズロジックをサインアップエンドポイントにもそのまま適用するのは比較的簡単でした。PR はこちらです:
技術的にはそうではないと思います。確かにユーザーは任意の値を入力できますが、どこかでレンダリングされる前にサニタイズが適用されるため(XSS の脆弱性はありません)。また、長さ制限もすでにサインアップエンドポイントで正しく適用されていました(DoS の脆弱性はありません)。