(Contact / #373) anti-spam: raison suspect distincte pour token absent vs token vide #381
No reviewers
Labels
No labels
contact
monthly-links
site content
spam
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
serious-devs/website!381
Loading…
Reference in a new issue
No description provided.
Delete branch "contact/absent-vs-empty-token"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Suite de #373 (triage de #378) : mesure de la frontière humain sans JS vs bot sans token.
Quoi
Aucun changement de comportement — l'issue continue d'être créée, flaguée
[suspect]et labellisée dans tous les cas. Seule la raison de flag distingue désormais deux cas aujourd'hui confondus sous « missing token » :tokenABSENT du POST →token field absent (hand-crafted request: browsers always submit every form field, empty included). Un navigateur soumet toujours tous les champs nommés, vides compris : l'absence du champ ne peut pas venir d'un navigateur sur ce formulaire → signature de requête fabriquée à la main (bot aveugle) ;token empty (JS disabled/blocked, or bot mirroring the form). C'est le cas humain sans JS (ou bot parseur qui copie tous les champs du HTML) ;malformed token.Pourquoi seulement mesurer : l'objectif validé dans #373 est « ne jamais perdre un vrai message », donc tout est créé et flagué comme aujourd'hui. La distinction permettra de compter, sur les issues
[suspect], le ratio réel bots-aveugles / humains-sans-JS — et de décider plus tard, en connaissance de cause, si le sous-cas « absent » peut passer en drop silencieux sans risque pour l'objectif.Vérifié
php -lOK (PHP 8.5.8)[suspect]« submitted too fast (0s after page load) », labels [contact, spam][suspect]« token field absent… », labels [contact, spam][suspect]« token empty… », labels [contact, spam][suspect]« malformed token », labels [contact, spam]#contact-success; payload Forgejo identique à avant (titre, corps, labels), seul le libellé de la raison change.