Formulář bez ochrany sbírá spam a formulář s ochranou, která nic nedělá, sbírá stejný spam a navíc vás ukolébá pocitem bezpečí. Bezplatný test ochrany formuláře odpovídá na první polovinu této otázky: jakou ochranu proti botům stránka dodává? Tento článek vysvětluje, jak výsledek číst a kde jeho odpověď končí.
Co test dělá
Zadáte adresu stránky s formulářem. Test nejprve přečte soubor robots.txt daného webu; pokud stažení zakazuje nebo jej nelze přečíst, test tam skončí. Jinak stáhne tuto jedinou stránku, pod jasným jménem (SilentShieldFormCheck), bez cookies, s nejvýše třemi přesměrováními a nejvýše 1 MB. Poté v HTML hledá znaky známých poskytovatelů: adresy skriptů, třídy prvků a názvy polí. Zná Google reCAPTCHA, hCaptcha, Cloudflare Turnstile, Friendly Captcha a SilentShield. Neukládá se nic, ani adresa, ani výsledek.
Pět výsledků
- Každý formulář nese značku. V každém nalezeném formuláři je v HTML značka známého poskytovatele. Ochrana je umístěna ve formuláři.
- Značku nese jen část formulářů. Seznam ukazuje, kterým chybí.
- Skript poskytovatele se načítá, ale žádný formulář nenese značku. Stránka načítá skript poskytovatele, avšak žádný z jejích formulářů neobsahuje značku. Zda a který formulář skript chrání, bez spuštění JavaScriptu není vidět.
- V dodaném HTML nebylo nic zjištěno. Stránka má formuláře, ale žádnou značku ani skript známého poskytovatele.
- V dodaném HTML není žádný formulář. Formuláře mohou vznikat až skriptem v prohlížeči, což test nevidí.
Co test nevidí
Test čte HTML, které dodává váš server. JavaScript nespouští. Vyplývají z toho čtyři věci, které byste měli mít na paměti.
- Formulář nebo widget, který v prohlížeči vytvoří skript, pro test neexistuje. „Nic nezjištěno“ proto znamená „nic v dodaném HTML“, nikdy „nechráněno“.
- Nevidí, zda váš server odpověď ověřuje. Widget ve formuláři bez kontroly na serveru nikoho nezastaví.
- Ochrana, která stojí před stránkou, například firewall nebo omezení počtu požadavků, v HTML nezanechá žádnou stopu.
- Stránky za přihlášením jsou mimo dosah, protože test stahuje jen veřejné stránky, bez cookies.
Skutečný příklad: naše vlastní registrační stránka
Když jsme test pustili na naši vlastní registrační stránku, první verze nahlásila dva poskytovatele, jejichž skript se „načítá“. Stránka nenačítá ani jednoho. Příčina byla v datech samotné stránky: položka nabídky „Alternativa k hCaptcha.“ stála v inline skriptu a test to slovo považoval za kód poskytovatele. Pravidlo jsme změnili: inline skript se počítá, jen pokud poskytovatele volá (volání render nebo execute), a táž stránka nyní hlásí, že v dodaném HTML nebylo nic zjištěno. Poučení je důvodem, proč test uvádí jen fakta: slovo na stránce není poskytovatel.
Co s výsledkem udělat
- Je-li značka přítomna, vyzkoušejte druhou polovinu: odešlete formulář zvenčí s chybějící nebo chybnou odpovědí a sledujte, zda jej váš server odmítne. Značka jen ukazuje, že je widget umístěn.
- Pokud se skript poskytovatele načítá bez značky ve formuláři, podívejte se, jak je widget připojen. Mnohá řešení jej přidávají až v prohlížeči po načtení stránky.
- Pokud nebylo nic zjištěno, nevyvozujte z toho, že je formulář otevřený. Podívejte se do protokolů svého serveru na to, co skutečně přichází, a ověřte, zda ochrana běží na serveru, nebo před stránkou.
- Rozhodnete-li se viditelnou úlohu nahradit, porovnejte možnosti na stránce porovnání CAPTCHA a pomocí kalkulačky konverzí zjistěte, kolik vás viditelná úloha stojí.
Test je první pohled na dodané HTML, nikoli audit. Použijte jej, abyste zjistili, co stránka sama o sobě říká, a zbytek ověřte odesláním.