Chodí vám spam z kontaktního formuláře na webu
Jak zastavit roboty, kteří vyplňují kontaktní formulář, bez otravné CAPTCHA, a kdy ochranu přesto přidat.
4 minuty čtení 4 kroky
Obsah návodu
Ráno dvacet e-mailů z formuláře: nabídky SEO, kryptoměny, náhodné znaky, odkazy na cizí stránky. Mezi nimi jedna skutečná poptávka, kterou snadno přehlédnete. Spam z formuláře není sám o sobě nebezpečný, ale naučí vás formulář ignorovat, a tím přicházíte o zákazníky.
Proč spam chodí
Roboti procházejí web, najdou formulář a odešlou ho. Nečtou stránku, neklikají, nepohybují myší. Vyplní všechna pole včetně těch, která nevidí, a odešlou během zlomku sekundy. Přesně těchto vlastností lze využít k obraně, aniž byste návštěvníka nutili hledat semafory na fotkách.
Formulář na webu je běžný cíl, protože je veřejně přístupný a bez ochrany odešle cokoli. Nejde o chybu hostingu ani e-mailového serveru; ochranu je potřeba nastavit ve formuláři samotném.
Postup: čtyři opatření bez CAPTCHA
Nasadit je můžete všechna najednou. Dohromady zastaví většinu spamu. Většina formulářových doplňků pro WordPress (Contact Form 7, WPForms, Gravity Forms) má tyto možnosti přímo v nastavení nebo v doplňkovém rozšíření.
- Past (honeypot). Do formuláře přidejte pole, které je pro člověka skryté, například „Fax“. Člověk ho nevidí a nevyplní, robot vyplní všechno. Kdo pole vyplnil, je robot a zpráva se tiše zahodí. Většina formulářových doplňků to umí zapnout jedním zaškrtnutím.
- Časový zámek. Formulář si zapamatuje, kdy se zobrazil. Když přijde odeslání do tří sekund, člověk to nebyl. Nikdo nevyplní jméno, e-mail a zprávu za dvě sekundy.
- Limit na odesílatele. Jedna zpráva z jedné adresy za půl minuty. Robot, který posílá stovku zpráv za minutu, projde jen jednou.
- Kontrola obsahu. Zpráva s pěti odkazy nebo bez jediného písmene s háčkem je na českém webu pro české zákazníky téměř jistě spam. Zde buďte opatrní, abyste nezahodili skutečnou poptávku; takové zprávy je lepší označit než mazat.
Kdy CAPTCHA přece jen
Když spam chodí i po těchto čtyřech opatřeních, jde o cílený útok, ne o náhodné roboty. Pak pomůže moderní neviditelná ochrana, která návštěvníka neobtěžuje: Cloudflare Turnstile nebo reCAPTCHA v3. Obě vyhodnotí chování na pozadí a úlohu s obrázky ukážou jen podezřelým. Klasická CAPTCHA s obrázky je až poslední možnost, protože prokazatelně odrazuje část zákazníků a na mobilu je nepohodlná.
Dvě další věci, které pomohou
- Ukládejte poptávky i do webu, ne jen do e-mailu. Když spam přehltí schránku, v administraci si skutečné poptávky odfiltrujete. A pokud e-maily z formuláře nechodí vůbec, o nic nepřijdete. Odesílání z formuláře je nejspolehlivější přes SMTP, viz Jak nastavit plugin Easy WP SMTP ve WordPressu.
- Nezobrazujte e-mailovou adresu jako prostý text na stránce Kontakt. Roboti ji sbírají a spam pak chodí i mimo formulář. Odkaz
mailto:je v pořádku, jen adresu nepište jako text do každé patičky.
Spam, který už do schránky dorazí, můžete dále třídit antispamovou kontrolou schránky, viz Nastavení Antispamové kontroly a Nastavení filtru zpráv v Datahost Webmail.
Kdy kontaktovat podporu a co jí poslat
Nastavení ochrany formuláře je práce v administraci webu, kterou podpora Datahostu za vás udělat nemůže. Napište na podpora@datahost.cz, pokud:
- si nejste jisti, zda zprávy z formuláře vůbec odcházejí přes poštovní server Datahostu (podpora ověří stav odchozí pošty),
- z webu spam naopak odchází: v odeslané poště schránky nebo v hlášeních o nedoručení vidíte zprávy, které jste neposlali. To není problém formuláře, ale napadený web, a spěchá to.
Do zprávy uveďte adresu webu, název formulářového doplňku, e-mailovou adresu, na kterou zprávy z formuláře chodí, a příklad podezřelé zprávy včetně hlaviček, viz Jak zkontrolovat hlavičky emailů.
Pokud z vašeho webu odchází spam, může se poštovní server dostat na černé listiny a přestanou chodit i vaše běžné e-maily. Napadení řešte neprodleně.