Formularis de contacte de WordPress: una llista de comprovació de seguretat
Contact Form 7, WPForms, Gravity Forms, Ninja Forms o Fluent Forms: el connector importa menys que la manera de configurar-lo i mantenir-lo. Això és el que cal comprovar i tornar a comprovar després de cada actualització.
La majoria de llocs WordPress utilitzen un dels pocs connectors de formularis habituals: Contact Form 7, WPForms, Gravity Forms, Ninja Forms, Fluent Forms i alguns altres. Qualsevol es pot utilitzar de manera segura o deixar completament obert. La diferència poques vegades és al connector mateix, sinó a la seva configuració, als complements que l'envolten, a com surt el correu del servidor i al que passa amb els missatges un cop arriben.
- Mantingui actualitzats el connector de formularis i tots els complements, i elimini els que ja no utilitzi.
- Activi la protecció del connector contra els missatges brossa —camp trampa, integració de CAPTCHA, Akismet quan sigui adequat— i confirmi que funciona realment.
- Enviï les notificacions mitjançant SMTP autenticat des d'una adreça del seu domini.
- Restringeixi les càrregues de fitxers per tipus i mida, i impedeixi que els fitxers carregats es puguin llistar o consultar públicament.
- Mantingui l'adreça de correu electrònic del destinatari fora de la pàgina i del seu codi font.
- Emmagatzemi només les entrades que necessiti i només durant el temps que les necessiti.
- Faci una comprovació breu després de cada actualització de WordPress, del tema o de qualsevol connector.
Actualitzacions: el connector de formularis i tot el que l'envolta
Els connectors de formularis són objectius populars perquè accepten dades de qualsevol persona a Internet. Les correccions de seguretat arriben com a actualitzacions ordinàries; per tant, actualitzi aviat, i no només el connector principal. Els complements per a pagaments, càrregues de fitxers, connexions amb CRM, lògica condicional o proveïdors addicionals de CAPTCHA són codi separat amb vulnerabilitats pròpies. També ho són els connectors que va instal·lar per fer una prova i va oblidar. Desactivar-los no és suficient: els connectors desactivats continuen al servidor i, en alguns casos, es pot accedir directament als seus fitxers. Si no l'utilitza, elimini'l.
Protecció contra els missatges brossa: activi-la i demostri que funciona
La majoria de connectors de formularis tenen opcions pròpies contra els missatges brossa o s'integren amb serveis externs: un camp trampa que els bots emplenen i les persones mai no veuen, CAPTCHA com reCAPTCHA, hCaptcha o Cloudflare Turnstile, i Akismet, que comprova el contingut dels missatges amb una base de dades de missatges brossa. Les opcions varien segons el connector i la versió; per tant, comprovi la configuració en lloc de donar-la per feta. Els CAPTCHA externs carreguen scripts d'un tercer i Akismet envia el contingut tramès a un servei extern: tots dos han de constar a la seva política de privacitat i, segons la configuració, a la seva gestió del consentiment.
El problema més habitual és una protecció activada que no funciona. Un CAPTCHA que utilitza claus de prova públiques ho deixa passar tot. Un giny l'script del qual queda bloquejat per un connector de memòria cau o d'optimització, o per un error de JavaScript, no atura res. Un camp trampa sense els estils que l'oculten és llegit pels lectors de pantalla i emplenat pels visitants reals. Per tant, després de qualsevol canvi, obri el formulari en una finestra privada, comprovi la consola del navegador i el codi font de la pàgina i enviï un missatge de prova. Si vol una protecció que no depengui de Google, el connector gratuït de formexposed per a WordPress afegeix un camp trampa, una comprovació temporal i una prova de treball, i torna a comprovar el lloc després de les actualitzacions dels connectors: una opció entre diverses.
El correu: com s'envia i on va
Per defecte, WordPress lliura el correu a la funció de correu PHP del servidor, i en molts allotjaments aquests missatges estan mal autenticats i acaben a la carpeta de correu brossa o desapareixen en silenci. En lloc d'això, enviï mitjançant un connector SMTP o el servei de correu del seu allotjament, utilitzant una bústia real amb nom d'usuari i contrasenya i una adreça remitent del seu domini, com ara una adreça forms@ dedicada. Els registres SPF, DKIM i DMARC del domini han de cobrir aquest remitent. No posi l'adreça del visitant al camp From: no és el seu domini, de manera que el missatge no pot superar l'alineació DMARC i, segons la política del domini del visitant, acaba a la carpeta de correu brossa o es rebutja. Configuri-la com a Reply-To i podrà continuar responent amb un sol clic.
L'adreça del destinatari correspon a la configuració del connector, no a la pàgina. Comprovi el codi font de la pàgina de contacte: un enllaç mailto al costat del formulari o un camp ocult que conté l'adreça del destinatari lliura aquesta adreça a tots els bots de recol·lecció. En formularis antics o fets a mida pot ser pitjor: si el servidor confia en un camp ocult de destinatari, qualsevol persona el pot canviar i utilitzar el seu formulari per enviar correu a adreces arbitràries.
Càrregues de fitxers i entrades emmagatzemades
Les càrregues de fitxers són la funció més arriscada d'un formulari; per tant, pregunti's primer si realment les necessita. Si és així, permeti només els tipus que realment espera —com PDF i formats d'imatge habituals— en lloc de bloquejar-ne uns quants de perillosos, i fixi un límit de mida. Comprovi on emmagatzema el connector els fitxers carregats: no s'han de poder llistar en un directori públic i, idealment, ni tan sols s'hi ha de poder accedir mitjançant una adreça fàcil d'endevinar. Elimini'ls un cop els hagi gestionat o enviï'ls com a adjunts en lloc de conservar-los al servidor.
Molts connectors de formularis o els seus complements desen cada enviament a la base de dades de WordPress, sovint inclosos els missatges brossa. És una còpia de seguretat útil quan falla el correu, però també una pila creixent de dades personals. D'acord amb el principi de limitació del termini de conservació del RGPD (Art. 5(1)(e)), aquestes dades no s'haurien de conservar més temps del necessari. Decideixi si necessita entrades emmagatzemades, quins camps i durant quant de temps; després utilitzi l'opció de supressió automàtica del connector, si n'hi ha, o elimini periòdicament les entrades antigues. Les còpies de seguretat de la base de dades contenen les mateixes dades.
Després de cada actualització
- 1Obri la pàgina de contacte en una finestra privada: el formulari i el seu element de protecció contra els missatges brossa es mostren correctament i la consola del navegador no mostra errors.
- 2Consulti el codi font de la pàgina: el camp trampa i l'script del CAPTCHA continuen allà, i l'adreça del destinatari no hi és.
- 3Enviï un missatge de prova: arriba a la safata d'entrada, no a la carpeta de correu brossa, i les capçaleres mostren que SPF, DKIM i DMARC superen les comprovacions.
- 4Comprovi les opcions importants: destinatari, adreça remitent, tipus i mides de fitxers permesos i temps de conservació de les entrades.
- 5Comprovi que l'enllaç a la política de privacitat i els textos de consentiment continuen apareixent al formulari.
- 6Anoti la data i el que ha comprovat per saber quan consta per última vegada que el formulari funcionava.
Un cop es converteix en rutina, això requereix poc temps i detecta precisament les fallades silencioses que, altrament, passarien desapercebudes durant setmanes. Per obtenir una visió externa, una comprovació gratuïta a formexposed.com examina les pàgines públiques de formularis d'un lloc sense enviar res i mostra si la protecció que espera hi és i està configurada de manera eficaç, sense necessitat de compte.