Nette-AntiSpam Control – Ochraň si svůj formulář
- JZechy
- Člen | 161
Úplně neznámé to určitě dle počtu stažení nebude za ty skoro dva roky… Ale pro jistotu to vyvěsím i zde :)
O co se jedná?
Určitě to znáte, někde si otevřete registrace nebo prachsprostou návštěvní knihu a než se nadějete, už se vám tam ruští spamboti registrují a vkládají náhodné příspěvky.
A pokud nechcete obtěžovat uživatele captchou, existuje několik nenáročných možností, kterými lze formulář ochránit. A tyhle jsou zde implementovány.
Jak to dělá
- Časový zámek Jelikož spambot většinou odešle formulář prakticky okamžitě, lze nastavit po kolik vteřin by formulář neměl být odeslán.
- Skrytá pole Důkladně taky zpravidla vyplní veškerá pole formuláře. Proto komponenta přidá pár náhodných polí, která jsou běžnému uživateli skryta pomocí JS. Lze případně přepnout i na CSS.
- Kontrolní otázka Vypočti 3 + jedna a můžeš formulář odeslat. I když vlastně uživatele to trápit nemusí. Otázka se schová a vyplní pomocí JS.
- Prodleva mezi příspěvky A samozřejmě i ochrana proti chtíči odeslat 50 příspěvků naráz za sebou.
Instalace
Jelikož krom stažení přes composer zde vlastně není co řešit, stačí
jenom do configu do sekce extensions přidat
antispam: Zet\AntiSpam\AntiSpamExtension
.
Případně se dá ještě nakonfigurovat pomocí několika možností.
Použití
Při vytváření formuláře pak stačí zavolat metodu addAntiSpam(), která příjímá pouze jedinný povinný parametr a to název prvku.
Při zpracování formuláře si pak stačí ověřit, zda prvek vrátil true – nejedná se o spambota, nebo false – někde se v ověření stala chyba.
V případě false lze i pomocí metody getError zjistit, čím dotyčný odesílatel neprošel. Vrací se číselný kod, který lze ověřit proti konstantám ze třídy \Zet\AntiSpam\ErrorType.
- GitHub: Nette-AntiSpam
Editoval JZechy (7. 1. 2018 20:53)