Aller au contenu

Points d'extension

phil/spam-protection

La bibliothèque est en PHP simple : elle ne déclare ni service ni port, et ses classes sont finales. Chaque vérification est une valeur que l'application configure et appelle ; les vérifications qui ont besoin d'un état appartiennent à l'application, et leurs signaux à la bibliothèque.

PointComment
Le secret des jetonsLe secret donné à TokenCodec, d'au moins 16 octets, tiré des secrets de l'application
Combien de temps un formulaire peut prendrenew TimingPolicy(minimum: …, maximum: …)
Le coût de la preuvenew ProofOfWork(difficulty: …), de 0 à ProofOfWork::MAXIMUM_DIFFICULTY
Les règles de contenunew ContentRules(maximumLinks: …, forbiddenTerms: […], detectGibberish: …, maximumLength: …) : les termes sont la liste de l'application
Les jetons envoyés deux foisLe stockage des nonces utilisés de l'application lève Signal::TokenReplayed
La limite de débitLe limiteur de débit de l'application lève Signal::RateLimited
Le champ cachéLe formulaire de l'application lève Signal::HoneypotFilled
Ce que devient un envoi retenuInspection::isSpam() et has() : l'application décide — refuser, mettre en file de modération, redemander

Les signaux sont une enum fermée : une vérification propre à l'application qui n'a pas de signal correspondant garde son résultat à côté de l'inspection plutôt que dedans.