Prevence spamu a odeslání od botů ve formulářích

Zastavte spam a útoky botů na své formuláře. Metody prevence botů a kdy použít CAPTCHA, aby formuláře zůstaly čisté.

Koncept

Podívejte se na odeslání kteréhokoli nechráněného formuláře a najdete totéž: desítky spamových záznamů, falešné kontakty, škodlivé odkazy a nesmysly. Nevyplňují je lidé ručně. Jsou to automatické skripty řízené útočníky a spamery. Prevence spamu a odeslání od botů tyto útoky zastaví dřív, než vám zaberou čas nebo poškodí data.

Spam je víc než jen otrava. Zahlcuje databázi, zkresluje analytiku, plní e-mailovou schránku a může zakrýt skutečné bezpečnostní hrozby. Účinná prevence botů chrání váš formulář a udržuje data čistá.

Co se dozvíte: jak automatičtí boti útočí na formuláře, proč jednoduchá ochrana nestačí, které metody prevence botů fungují nejlépe a jak je zavést tak, aby nerušily skutečné návštěvníky.

Jak fungují útoky botů na formuláře

Bot (zkratka od robot) je automatický program, který provádí opakující se úkoly. Boti, kteří útočí na formuláře, dělají například toto:

  • Automaticky vyplní každé pole náhodným textem
  • Odešlou formulář tisíckrát denně
  • Vkládají odkazy nebo reklamy do polí formuláře
  • Zkoušejí bezpečnostní slabiny tím, že formulář testují
  • Sbírají e-mailové adresy, které přidají na spamové seznamy

Na rozdíl od hackera, který může mířit na jeden konkrétní formulář, boti útočí na tisíce formulářů ve velkém. Prohledávají internet a hledají formuláře, a když nějaký najdou, automaticky odešlou spam. Můžete se ráno probudit s 10 000 falešnými odesláními ve schránce.

Proč jsou formuláře vůči botům zranitelné

Formuláře přijímají vstup od kohokoli

Formuláře jsou z podstaty otevřené internetu. Váš formulář může najít a odeslat kdokoli. Neexistuje počáteční ověření, že ho odesílá skutečný člověk.

Formuláře jsou předvídatelné

Pokud bot vidí váš formulář v HTML webové stránky, může z něj vyčíst strukturu a pochopit, která pole se mají vyplnit. Formuláře jsou proto snadným cílem automatizace.

Většina formulářů nemá žádnou ochranu

Mnoho webů publikuje formuláře bez jakékoli detekce botů. Boti se rychle naučí tyto nechráněné cíle zneužívat.

Proč základní ochrana nefunguje

Zakrývání názvů polí formuláře

Někteří lidé si myslí, že skrytí názvů polí formuláře boty zmate. Boti ale mohou názvy polí zjistit z HTML nebo analýzou odeslání formuláře. To nefunguje.

Honeypot pole (návnadová pole)

Honeypot pole je skryté pole formuláře, které skuteční návštěvníci nikdy neuvidí. Boti, kteří nerozumějí CSS ani skrytým atributům, ho přesto vyplní. Odeslání, kde je honeypot vyplněný, můžete odmítnout.

Funguje to proti velmi jednoduchým botům, ale sofistikovaní boti se o honeypot polích dozvěděli a vědí, že je nemají vyplňovat. Samotný je dnes slabou obranou.

Jednoduché matematické příklady nebo otázky

„Kolik je 2 + 2?“ vypadá, že bot na to neodpoví. Moderní AI a nástroje OCR (optické rozpoznávání znaků) ale umějí jednoduché příklady přečíst a vyřešit. Tato obrana je zastaralá.

Účinné metody prevence botů

CAPTCHA

CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) je nejběžnější metoda prevence botů. Existuje několik typů:

CAPTCHA založená na textu: Uživatelé řeší hádanku s pokřiveným textem. Starší a dnes méně účinná, protože AI umí pokřivený text přečíst.

CAPTCHA založená na obrázcích (reCAPTCHA v2): Uživatelé klikají na zaškrtávací pole nebo určují objekty na obrázcích. Spolehlivější než textová, ale pořád ne dokonalá. Tu vidíte na mnoha webech.

Neviditelná CAPTCHA (reCAPTCHA v3): Uživatel nevidí nic. Systém analyzuje jeho chování (jak pohybuje myší, jak rychle formulář vyplňuje) a určí, jestli je člověk. Pro skutečné uživatele žádné tření, ale vyžaduje sofistikovanější backend.

Omezení počtu požadavků

Omezení počtu požadavků (rate limiting) určuje, kolikrát smí stejná IP adresa nebo uživatelský účet odeslat formulář za určité období. Pokud se útočník pokusí z jedné IP odeslat 1 000 formulářů za 10 minut, rate limiting ho zablokuje po prvních 5 odeslání za 10 minut.

Rate limiting je pro skutečné uživatele neviditelný (většina lidí neodešle stejný formulář 20krát za hodinu), ale proti botům (kteří odesílají opakovaně a nadlidskou rychlostí) je účinný.

Ověření e-mailu

Vyžadujte, aby návštěvníci ověřili svou e-mailovou adresu kliknutím na odkaz v potvrzovacím e-mailu. Boti obvykle nemají přístup do e-mailových schránek (nebo používají falešné adresy, které neexistují). Tím se odstraní mnoho odeslání od botů.

Nevýhoda: pro skutečné návštěvníky to vytváří další tření. Použijte to u cenných formulářů (registrace, vytvoření účtu), kde jste ochotní přidat další krok.

Analýza chování

Analyzujte, jak návštěvníci s formulářem pracují:

  • Vyplnili formulář nadlidskou rychlostí (všechna pole za 0,5 sekundy)? Pravděpodobně bot.
  • Nikdy se nezaměřili na žádné pole (jen proklikali tabulátorem bez psaní)? Pravděpodobně bot.
  • Vyplnili pole, smazali ho, vyplnili znovu, zase smazali? Pravděpodobně člověk.

To vyžaduje JavaScript ve formuláři, který sleduje interakce uživatele. Pro skutečné uživatele je neviditelné a proti jednoduchým botům účinné.

Otisk zařízení

Analyzujte vlastnosti zařízení, které formulář odesílá (typ prohlížeče, operační systém, rozlišení obrazovky, časové pásmo a podobně). Boti mívají neobvyklé nebo nekonzistentní otisky zařízení. Skutečná zařízení mají vzorce, které vypadají lidsky.

Je to sofistikované a vyžaduje to služby třetích stran, ale je to velmi účinné.

Kdy kterou metodu použít

U základního kontaktního formuláře

Použijte rate limiting (neviditelný) a CAPTCHA, pokud dostáváte hodně spamu. Ověření e-mailu je volitelné.

U formuláře pro přihlášení k newsletteru

Použijte rate limiting a ověření e-mailu. To potvrdí, že e-mail je skutečný, a zabrání hromadným registracím falešných adres.

U cenného formuláře (vytvoření účtu, platba a podobně)

Použijte více vrstev: rate limiting, CAPTCHA, ověření e-mailu. Pro větší jistotu zvažte analýzu chování.

U koncového bodu API nebo programového přístupu

Použijte autentizaci API (tokeny nebo klíče API) místo CAPTCHA. CAPTCHA pro API nefunguje. Rate limiting je nezbytný.

Dopad prevence botů na uživatelský zážitek

Silná prevence botů může vytvářet tření pro skutečné uživatele. Vyvažte bezpečnost s použitelností:

CAPTCHA: Přidá pár sekund a jeden krok navíc. Viditelná a trochu otravná, ale uživatelé ji široce akceptují. Mnoho lidí ji čeká.

Ověření e-mailu: Vyžaduje, aby uživatel zkontroloval e-mail a klikl na odkaz. Vyšší tření, ale u cenných akcí nezbytné.

Analýza chování nebo rate limiting: Neviditelné. Pro skutečné uživatele vůbec žádné tření.

Osvědčený postup: Nejdřív používejte neviditelné metody (rate limiting, analýza chování). CAPTCHA zobrazte, jen když odeslání formuláře vypadá podezřele. Takto 95% skutečných uživatelů CAPTCHA nikdy neuvidí, ale boti ji uvidí téměř vždy.

Sledování odeslání formulářů kvůli spamu

I s prevencí botů může část spamu proklouznout. Sledujte svá odeslání:

  • Pravidelně kontrolujte nová odeslání, zda neobsahují zjevné vzorce spamu
  • Hledejte odeslání s nesmyslným textem nebo odkazy
  • Sledujte počet odeslání (pokud náhle vyskočí, můžete být pod útokem)
  • Kontrolujte, z jakých zemí odeslání přicházejí (pokud obsluhujete jen USA, odeslání z určitých zemí mohou být podezřelá)

Většina formulářů umožňuje označit odeslání jako spam. Využijte to k trénování modelů strojového učení, které mohou pomoci předcházet budoucímu spamu.

Co WEMASY dělá pro prevenci spamu

Formuláře WEMASY obsahují prevenci botů ve výchozím nastavení. Každý formulář zahrnuje rate limiting (opakovaná odeslání ze stejné IP jsou zpomalena) a volitelnou ochranu CAPTCHA (reCAPTCHA v3). U formulářů, které to vyžadují, můžete zapnout ověření e-mailu. WEMASY také sleduje odeslání, zda neobsahují vzorce spamu, a podezřelé záznamy označuje.

Všechny formuláře mají ochranu před spamem. Pokročilejší ochrana je dostupná ve vyšších tarifech. Podrobnosti o svém tarifu najdete na ceníku.

Často kladené otázky

Zabrání CAPTCHA veškerému spamu?
CAPTCHA zablokuje většinu botů, ale ne všechny. Sofistikované útoky mohou CAPTCHA obejít pomocí služeb, které je řeší automaticky. CAPTCHA ale laťku výrazně zvedne. Většina spamerů přejde na snazší cíle. Pro lepší ochranu CAPTCHA zkombinujte s rate limitingem.
Je reCAPTCHA v3 lepší než v2?
reCAPTCHA v3 je neviditelná (pro uživatele žádné tření), zatímco v2 zobrazuje zaškrtávací pole, na které musí uživatelé kliknout. v3 je lepší pro uživatelský zážitek, ale vyžaduje, abyste důvěřovali analýze chování uživatele od Googlu. v2 je průhlednější, protože uživatel dělá výslovnou volbu. Obě jsou účinné. v3 se doporučuje u formulářů s vysokým provozem.
Mohu místo CAPTCHA použít honeypot pole?
Honeypoty zablokují jednoduché boty, ale ne sofistikované. Pro lepší ochranu honeypot zkombinujte s rate limitingem. Pokud máte hodně spamu, samotný honeypot pravděpodobně nestačí. Přidejte CAPTCHA nebo ověření e-mailu.
Co když skuteční uživatelé CAPTCHA nevyřeší?
Někteří lidé (zejména se zrakovým postižením) s obrázkovými CAPTCHA bojují. Většina služeb jako reCAPTCHA v2 nabízí zvukovou alternativu. Z hlediska přístupnosti použijte nejpřívětivější dostupnou CAPTCHA a ujistěte se, že je alternativa k dispozici. Nebo použijte neviditelnou CAPTCHA (v3), která nevyžaduje žádnou akci uživatele.
Jak poznám, že je můj formulář pod spamovým útokem?
Sledujte náhlé nárůsty odeslání, zejména pokud obsahují zjevné vzorce spamu (odkazy, nesmysly, opakovaný text). Pokud najednou dostanete 100 odeslání za 10 minut (a běžně máte 10 za den), jste pod útokem. Okamžitě zapněte přísnější prevenci botů.

Využijte to hned
na vlastním webu.

Začněte zdarma s WEMASY a postavte si web za pár minut.