Champ utilisateur déroulant personnalisé contient une valeur non sélectionnable

Sur mon forum, j’ai ce champ personnalisé lors de l’inscription des utilisateurs.

Mais il semble que les bots spammeurs créent des comptes avec une valeur pour ce menu déroulant qui n’est pas sélectionnable. Cela le fait presque fonctionner comme un piège à abeilles (honeypot) pour déterminer quel compte n’est pas créé par un humain. Mais cela pourrait aussi être un problème de sécurité ?

3 « J'aime »

C’est parce que les bots n’utilisent pas l’inscription via l’interface utilisateur, qui dispose de validateurs. Ces bots spammeurs envoient des requêtes POST automatisées directement vers le point de terminaison de l’API d’inscription. Je pense aussi que lorsque certains champs sont facultatifs, la validation côté serveur n’est parfois pas assez stricte et enregistre quand même la valeur du payload dans la base de données.

Je ne suis pas certain de la solution fondamentale, mais vous aurez probablement besoin d’une configuration ou d’outils anti-spam supplémentaires. (J’utilise un bot anti-spam basé sur l’IA sur mon forum public et cela fonctionne à merveille, même avec des champs facultatifs lors de l’inscription.)

Vous pouvez retrouver tous les utilisateurs de votre forum en utilisant l’explorateur de données — je pense que cela fonctionnera, mais je ne l’ai pas testé (en supposant que le champ personnalisé est user_field_1) :

SELECT user_id, value 
FROM user_custom_fields 
WHERE name = 'user_field_1' 
AND value NOT IN ('Bro', 'Sis', '')

Si vous avez récemment modifié ce champ en passant d’une saisie de texte à une liste déroulante, cela pourrait aussi expliquer certains de ces comptes de bots avec des valeurs de champ incorrectes.

2 « J'aime »

@Lilly a raison. Il n’y a pas assez de méfiance du côté du back-end ici.

Depuis que ce problème est apparu, j’ai décidé de vérifier si cela affectait également la page de profil, ce qui n’est pas le cas. Nous assurons correctement le nettoyage des valeurs lorsque les utilisateurs mettent à jour leur profil. Cela a rendu relativement simple le fait de copier cette logique de nettoyage vers le point de terminaison d’inscription. Une PR est disponible ici :

Je ne pense pas que ce soit techniquement le cas. Oui, les utilisateurs peuvent saisir des valeurs arbitraires, mais un nettoyage est toujours appliqué avant que cela ne soit rendu n’importe où (donc pas de vecteur XSS). De plus, la limite de longueur était déjà correctement appliquée dans le point de terminaison d’inscription (donc pas de vecteur DoS).

2 « J'aime »