Но, похоже, спам-боты создают учётные записи со значением в этом выпадающем списке, которое невозможно выбрать. Это почти превращает поле в ловушку для спамеров (honeypot), позволяя определить, какая учётная запись создана не человеком. Однако это может также быть проблемой безопасности?
Это происходит потому, что боты не используют форму регистрации на фронтенде, где есть валидаторы. Такие спам-боты отправляют автоматизированные POST-запросы к конечной точке API регистрации. Также, когда поля необязательные, валидация на бэкенде иногда недостаточно строгая, и значение из payload сохраняется в базу данных.
Я не уверен, в чём заключается основное исправление, но вам, вероятно, также понадобятся дополнительные настройки или инструменты для борьбы со спамом. (Я использую 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', '')
Если вы недавно изменили это поле с текстового ввода на выпадающий список, это также может объяснить наличие некоторых ботовых аккаунтов с некорректными значениями в этом поле.