Kontaktné formuláre vo WordPresse: bezpečnostný kontrolný zoznam
Contact Form 7, WPForms, Gravity Forms, Ninja Forms alebo Fluent Forms – na plugine záleží menej ako na tom, ako je nastavený a udržiavaný. Tu je, čo skontrolovať a čo znova overiť po každej aktualizácii.
Väčšina stránok na WordPresse používa jeden z hŕstky pluginov formulárov: Contact Form 7, WPForms, Gravity Forms, Ninja Forms, Fluent Forms a niekoľko ďalších. Ktorýkoľvek z nich sa dá prevádzkovať bezpečne alebo nechať dokorán otvorený. Rozdiel zriedka spočíva v samotnom plugine, ale v jeho nastaveniach, doplnkoch okolo neho, v tom, ako pošta opúšťa server, a v tom, čo sa deje so správami, keď dorazia.
- Udržiavajte plugin formulára a každý doplnok aktuálny a tie, ktoré už nepoužívate, vymažte.
- Zapnite vlastnú antispamovú ochranu pluginu – honeypot, integráciu CAPTCHA, Akismet tam, kde sa hodí – a overte, že skutočne funguje.
- Oznámenia posielajte cez autentifikované SMTP z adresy na vlastnej doméne.
- Obmedzte nahrávanie súborov podľa typu a veľkosti a zabráňte tomu, aby sa nahrané súbory dali verejne vypísať alebo prehliadať.
- E-mailovú adresu príjemcu nedávajte na stránku ani do jej zdrojového kódu.
- Ukladajte len záznamy, ktoré potrebujete, a len tak dlho, ako ich potrebujete.
- Po každej aktualizácii WordPressu, témy alebo ktoréhokoľvek pluginu vykonajte krátku kontrolu.
Aktualizácie: plugin formulára a všetko okolo neho
Pluginy formulárov sú obľúbeným cieľom, pretože prijímajú vstupy od kohokoľvek na internete. Bezpečnostné opravy prichádzajú ako bežné aktualizácie, preto aktualizujte bezodkladne – a nielen hlavný plugin. Doplnky pre platby, nahrávanie súborov, prepojenia s CRM, podmienenú logiku alebo ďalších poskytovateľov CAPTCHA sú samostatný kód s vlastnými zraniteľnosťami. Rovnako aj pluginy, ktoré ste kedysi nainštalovali na test a zabudli na ne. Deaktivácia nestačí: deaktivované pluginy stále zostávajú na serveri a ich súbory môžu byť v niektorých prípadoch priamo dostupné. Ak ho nepoužívate, vymažte ho.
Antispam: zapnite ho a potom dokážte, že funguje
Väčšina pluginov formulárov má vlastné antispamové možnosti alebo sa integruje s externými službami: pole honeypot, ktoré boty vyplnia a ľudia nikdy neuvidia, CAPTCHA ako reCAPTCHA, hCaptcha alebo Cloudflare Turnstile a Akismet, ktorý porovnáva obsah správy s databázou spamu. Možnosti sa líšia podľa pluginu a verzie, preto namiesto predpokladov skontrolujte nastavenia. Externé CAPTCHA načítavajú skripty od tretej strany a Akismet posiela odoslaný obsah externej službe – oboje patrí do Vašich zásad ochrany osobných údajov a v závislosti od Vášho nastavenia aj do správy súhlasov.
Častejším problémom je ochrana, ktorá je zapnutá, ale nefunguje. CAPTCHA bežiaca na verejných testovacích kľúčoch prepustí všetko. Widget, ktorého skript blokuje plugin na ukladanie do vyrovnávacej pamäte alebo optimalizáciu, prípadne chyba JavaScriptu, nezastaví nič. Pole honeypot bez štýlov, ktoré ho skrývajú, prečítajú čítačky obrazovky a vyplnia ho skutoční návštevníci. Preto po každej zmene otvorte formulár v súkromnom okne, skontrolujte konzolu prehliadača a zdrojový kód stránky a pošlite testovaciu správu. Ak chcete ochranu, ktorá nezávisí od Googlu, bezplatný plugin formexposed pre WordPress pridáva honeypot, časovú kontrolu a proof-of-work a po aktualizáciách pluginov stránku znova kontroluje – je to jedna z viacerých možností.
Pošta: ako sa posiela a kam ide
WordPress predvolene odovzdáva poštu funkcii PHP mail na serveri a u mnohých hostingov sú tieto správy slabo autentifikované a končia v spame – alebo potichu zmiznú. Namiesto toho posielajte cez plugin SMTP alebo poštovú službu Vášho hostingu, so skutočnou schránkou s používateľským menom a heslom a s adresou odosielateľa na vlastnej doméne, napríklad samostatnou adresou formulare@. Záznamy SPF, DKIM a DMARC domény musia tohto odosielateľa pokrývať. Adresu návštevníka nedávajte do poľa From: nie je to Vaša doména, takže správa nemôže prejsť zosúladením DMARC a v závislosti od politiky domény návštevníka skončí v spame alebo je odmietnutá. Nastavte ju ako Reply-To a stále môžete odpovedať jedným kliknutím.
Adresa príjemcu patrí do nastavení pluginu, nie na stránku. Skontrolujte zdrojový kód svojej kontaktnej stránky: odkaz mailto vedľa formulára alebo skryté pole s adresou príjemcu odovzdáva túto adresu každému zberaciemu botovi. V starších alebo na mieru vytvorených formulároch to môže byť horšie – ak server dôveruje skrytému poľu príjemcu, ktokoľvek ho môže zmeniť a použiť Váš formulár na posielanie pošty na ľubovoľné adresy.
Nahrávanie súborov a uložené záznamy
Nahrávanie súborov je najrizikovejšou funkciou formulára, preto sa najprv opýtajte, či ho vôbec potrebujete. Ak áno, povoľte len typy, ktoré skutočne očakávate – napríklad PDF a bežné obrázkové formáty – namiesto blokovania niekoľkých nebezpečných, a nastavte limit veľkosti. Skontrolujte, kam plugin ukladá nahrané súbory: nesmú sa dať vypísať vo verejnom adresári a ideálne by nemali byť vôbec dostupné na uhádnuteľnej adrese. Po vybavení ich vymažte alebo ich posielajte ako prílohy namiesto toho, aby ste ich uchovávali na serveri.
Mnohé pluginy formulárov alebo ich doplnky ukladajú každé odoslanie do databázy WordPressu, často vrátane spamu. Je to užitočná záloha pre prípad, že pošta zlyhá, ale zároveň rastúca kopa osobných údajov. Podľa zásady minimalizácie uchovávania podľa GDPR (čl. 5(1)(e)) by sa takéto údaje nemali uchovávať dlhšie, ako je potrebné. Rozhodnite sa, či uložené záznamy potrebujete, ktoré polia a ako dlho, a potom použite nastavenie automatického vymazávania v plugine, ak existuje, alebo staré záznamy pravidelne vymazávajte. Zálohy databázy obsahujú tie isté údaje.
Po každej aktualizácii
- 1Otvorte kontaktnú stránku v súkromnom okne: formulár a jeho antispamový prvok sa zobrazujú správne a konzola prehliadača neukazuje žiadne chyby.
- 2Pozrite si zdrojový kód stránky: pole honeypot a skript CAPTCHA sú stále na mieste a adresa príjemcu nie je.
- 3Pošlite testovaciu správu: dorazí do schránky, nie do spamu, a hlavičky ukazujú, že SPF, DKIM a DMARC prešli.
- 4Skontrolujte dôležité nastavenia: príjemcu, adresu odosielateľa, povolené typy a veľkosti nahrávaných súborov, ako dlho sa záznamy uchovávajú.
- 5Overte, či sa pri formulári stále zobrazuje odkaz na zásady ochrany osobných údajov a prípadný text súhlasu.
- 6Zapíšte si dátum a čo ste kontrolovali, aby ste vedeli, kedy formulár naposledy preukázateľne fungoval.
Keď sa to stane rutinou, zaberie to málo času a zachytí to presne tie tiché zlyhania, ktoré inak zostanú celé týždne nepovšimnuté. Ak chcete pohľad zvonku, bezplatná kontrola na formexposed.com sa pozrie na verejné stránky s formulármi bez toho, aby čokoľvek odosielala, a ukáže, či je ochrana, ktorú očakávate, na mieste a účinne nakonfigurovaná – bez potreby účtu.