Înapoi la blog
Noțiuni de bază Publicat 28.09.2026 7 min de citit

Formularele de contact WordPress: o listă de verificare a securității

Contact Form 7, WPForms, Gravity Forms, Ninja Forms sau Fluent Forms – pluginul contează mai puțin decât modul în care este configurat și întreținut. Iată ce trebuie verificat și ce trebuie reverificat după fiecare actualizare.

Majoritatea site-urilor WordPress folosesc unul dintre puținele pluginuri de formulare: Contact Form 7, WPForms, Gravity Forms, Ninja Forms, Fluent Forms și câteva altele. Oricare dintre ele poate fi operat în siguranță sau lăsat complet deschis. Diferența rareori ține de pluginul în sine, ci de setările sale, de suplimentele din jurul lui, de modul în care e-mailurile părăsesc serverul și de ce se întâmplă cu mesajele după ce sosesc.

  • Mențineți actualizate pluginul de formulare și fiecare supliment și ștergeți-le pe cele pe care nu le mai folosiți.
  • Activați protecția antispam proprie a pluginului – honeypot, integrare CAPTCHA, Akismet acolo unde se potrivește – și confirmați că funcționează efectiv.
  • Trimiteți notificările prin SMTP autentificat, de la o adresă de pe propriul domeniu.
  • Restricționați încărcările după tip și dimensiune și împiedicați listarea sau răsfoirea publică a fișierelor încărcate.
  • Nu includeți adresa de e-mail a destinatarului în pagină și în codul sursă al acesteia.
  • Stocați doar înregistrările de care aveți nevoie și doar atât timp cât aveți nevoie de ele.
  • Efectuați o scurtă verificare după fiecare actualizare a WordPress, a temei sau a oricărui plugin.

Actualizări: pluginul de formulare și tot ce îl înconjoară

Pluginurile de formulare sunt ținte populare, deoarece acceptă date de la oricine de pe internet. Remedierile de securitate sosesc ca actualizări obișnuite, așa că actualizați prompt – și nu doar pluginul principal. Suplimentele pentru plăți, încărcări, conexiuni CRM, logică condițională sau furnizori CAPTCHA suplimentari sunt cod separat, cu propriile vulnerabilități. La fel și pluginurile instalate cândva pentru un test și uitate. Dezactivarea nu este suficientă: pluginurile dezactivate rămân pe server, iar fișierele lor pot fi, în unele cazuri, accesate direct. Dacă nu îl folosiți, ștergeți-l.

Antispam: activați-l, apoi dovediți că funcționează

Majoritatea pluginurilor de formulare au propriile opțiuni antispam sau se integrează cu servicii externe: un câmp honeypot pe care boții îl completează și oamenii nu îl văd niciodată, CAPTCHA-uri precum reCAPTCHA, hCaptcha sau Cloudflare Turnstile și Akismet, care verifică conținutul mesajelor pe baza unei baze de date de spam. Opțiunile variază în funcție de plugin și de versiune, așa că verificați setările în loc să presupuneți. CAPTCHA-urile externe încarcă scripturi de la un terț, iar Akismet trimite conținutul transmis unui serviciu extern – ambele trebuie menționate în politica dumneavoastră de confidențialitate și, în funcție de configurare, incluse în gestionarea consimțământului.

Problema mai frecventă este protecția care este activată, dar nu funcționează. Un CAPTCHA care rulează cu chei de test publice lasă totul să treacă. Un widget al cărui script este blocat de un plugin de cache sau de optimizare ori de o eroare JavaScript nu oprește nimic. Un câmp honeypot fără stilurile care îl ascund este citit de cititoarele de ecran și completat de vizitatorii reali. Așadar, după orice modificare, deschideți formularul într-o fereastră privată, verificați consola browserului și codul sursă al paginii și trimiteți un mesaj de test. Dacă doriți o protecție care nu depinde de Google, pluginul WordPress gratuit formexposed adaugă un honeypot, o verificare a timpului și proof-of-work și reverifică site-ul după actualizările pluginurilor – o opțiune printre mai multe.

E-mail: cum este trimis și unde ajunge

Implicit, WordPress predă e-mailurile funcției PHP mail a serverului, iar la mulți furnizori de găzduire aceste mesaje sunt slab autentificate și ajung în spam – sau dispar în tăcere. Trimiteți în schimb printr-un plugin SMTP sau prin serviciul de e-mail al furnizorului de găzduire, folosind o căsuță poștală reală, cu nume de utilizator și parolă, și o adresă de expeditor de pe propriul domeniu, de exemplu o adresă forms@ dedicată. Înregistrările SPF, DKIM și DMARC ale domeniului trebuie să acopere acest expeditor. Nu puneți adresa vizitatorului în câmpul From: nu este domeniul dumneavoastră, așa că mesajul nu poate trece de alinierea DMARC și, în funcție de politica domeniului vizitatorului, ajunge în spam sau este respins. Setați-o ca Reply-To și veți putea răspunde în continuare cu un singur clic.

Adresa destinatarului își are locul în setările pluginului, nu în pagină. Verificați codul sursă al paginii de contact: un link mailto lângă formular sau un câmp ascuns care conține adresa destinatarului oferă acea adresă oricărui bot de colectare. În formularele mai vechi sau create la comandă poate fi și mai rău – dacă serverul are încredere într-un câmp ascuns pentru destinatar, oricine îl poate modifica și vă poate folosi formularul pentru a trimite e-mailuri către adrese arbitrare.

Încărcări și înregistrări stocate

Încărcarea fișierelor este funcția de formular cea mai riscantă, așa că întrebați-vă mai întâi dacă aveți într-adevăr nevoie de ea. Dacă da, permiteți doar tipurile pe care le așteptați efectiv – de exemplu PDF și formatele de imagine obișnuite – în loc să blocați câteva tipuri periculoase, și stabiliți o limită de dimensiune. Verificați unde stochează pluginul încărcările: acestea nu trebuie să poată fi listate într-un director public și, ideal, nu trebuie să fie accesibile deloc la o adresă ușor de ghicit. Ștergeți-le după ce au fost procesate sau trimiteți-le ca atașamente în loc să le păstrați pe server.

Multe pluginuri de formulare sau suplimentele lor salvează fiecare trimitere în baza de date WordPress, adesea inclusiv spamul. Aceasta este o copie de rezervă utilă atunci când e-mailul eșuează, dar și o grămadă tot mai mare de date cu caracter personal. Conform principiului RGPD al limitărilor legate de stocare (art. 5(1)(e)), astfel de date nu ar trebui păstrate mai mult decât este necesar. Decideți dacă aveți nevoie de înregistrări stocate, ce câmpuri și pentru cât timp, apoi utilizați setarea de ștergere automată a pluginului, dacă există, sau ștergeți periodic înregistrările vechi. Copiile de rezervă ale bazei de date conțin aceleași date.

După fiecare actualizare

  1. 1Deschideți pagina de contact într-o fereastră privată: formularul și elementul său antispam se afișează corect, iar consola browserului nu arată erori.
  2. 2Vizualizați codul sursă al paginii: câmpul honeypot și scriptul CAPTCHA sunt încă acolo, iar adresa destinatarului nu este.
  3. 3Trimiteți un mesaj de test: acesta ajunge în căsuța poștală, nu în spam, iar anteturile arată că SPF, DKIM și DMARC trec.
  4. 4Verificați setările importante: destinatarul, adresa expeditorului, tipurile și dimensiunile permise pentru încărcări, cât timp sunt păstrate înregistrările.
  5. 5Verificați că linkul către politica de confidențialitate și eventualul text de consimțământ sunt încă afișate la formular.
  6. 6Notați data și ce ați verificat, ca să știți când a funcționat formularul ultima dată în mod demonstrabil.

Odată devenită rutină, această verificare durează puțin și prinde exact defecțiunile discrete care altfel trec neobservate săptămâni întregi. Pentru o perspectivă din exterior, o verificare gratuită pe formexposed.com analizează paginile publice cu formulare ale unui site fără a trimite nimic și arată dacă protecția la care vă așteptați există și este configurată eficient – fără a fi nevoie de cont.