Formularis segurs amb camps amagats
Una barrera addicional que no causa molèsties
No sembla tenir gaire sentit que milers de bots es dediquin a tractar de trencar els modestos sistemes de seguretat en els formularis dels nostres llocs web amb l'únic propòsit d'enviar-nos correus no desitjats. Si la finalitat és aconseguir enormes llistes de distribució a on enviar, previ pagament, correus promocionals, tampoc sembla que aquestes llistes de distribució que entren per la porta de darrere siguin molt valuoses per a les campanyes de màrqueting de les empreses que les compren.
Els responsables del manteniment dels llocs web ens veiem obligats a una recerca permanent de sistemes de prevenció d'aquests atacs en un difícil equilibri amb l'objectiu de preservar la raó de ser dels formularis: obrir portes a la comunicació amb els nostres clients i potencials clients; hem de implementar sistemes eficients, però amb el menor impacte en la usabilitat per part dels clients reals.
Els sistemes de correu solen comptar amb sistemes d'identificació de correu spam, però els bots també han après a saltar-se aquestes barreres. Ara, a més, que la majoria de les webs professionals estan connectades a bases de dades, necessàries per complir les lleis de protecció de dades, el problema es multiplica al tenir també brossa a les nostres bases de dades.
No existeix un sistema infal·lible
Cap dels sistemes utilitzats fins ara ha resultat prou robust per resistir els atacs dels bots. Ara és el turn de sistema Recaptcha de Google que parteix de l'anàlisi de l'comportament (i l'encreuament de molta informació de milions de formularis) per discernir bots de usuaris reals. Veurem el que triga a deixar de ser útil; les característiques dels bots que analitza aquests aviat les dissimularan.
I és que els bots aprenen ràpid, a força d'intentar trencar milions de sistemes captcha. Com més estès estigui un sistema, com més popular sigui, més oportunitats de superar-lo amb el sistema d'assaig i error a velocitats de vertigen.
Si vols un sistema Captcha exclusiu, disposem d'un sistema captcha sequencial PHP gratuït de desenvolupament propi.
A més, aquest, com altres sistemes que es comercialitzen, tenen com a valor troncal per a les companyies que els distribueixen, tenir ple accés al nostre trànsit.
Una barrera intel·ligent i invisible
Atès que, per sofisticats que siguin, tots els sistemes captcha són vulnerables, potser la millor defensa contra els bots sigui aplicar una mica de sentit comú. Amb independència del sistema captcha de la seva preferència, i addicionalment a aquest, col·loquem algun camp amagat als nostres formularis.
A més, serà convenient, de cara a enganyar els bots, no posar a aquests camps cap nom que resulti evident, com camp ocult o similar. Ni tan sols convé diferenciar amb una classe diferent de la de la resta de camps. La majoríia dels bots ja saben que aquest tipus de camps existeixen i han après a no complimentar-los. Haurem d'amagar que és tracta d'un camp amagat.
Aquest tipus de barrera passa completament desapercebuda per als usuaris reals dels nostres formularis, per tant, res no importa si, en lloc d'un camp ocult, posem dos o tres. Aquest element (o aquests), juntament amb unes línies d'estil en CSS, un mínim codi PHP i una petita argúcia, pot resultar realment efectiu per allunyar els bots de la nostra bústia de correou i la nostra base de dadas.
Un codi html perfectament normal
Camps secrets al html
Al costat de el nom, adreça, correu electrònic, incloguem algun camp addicional. Un únic camp-parany és suficient, però podem posar quants vulguem; no van a molestar als usuaris reals i no consumiran gaire recursos.
Per exemple, si només fem servir un camp per al nom, podem incloure un altre que anomenarem "cognoms", de manera que tindrem un camp "nom" identificat amb "name='name' id='name'" i un altre camp "cognoms" identificat amb "name='surname' id='surname'". Podríem incloure altres camps-parany com direcció o carrer, qualsevol que sembli raonable però que no ens interessi.
Aquests camps no seran visibles per als usuaris reals dels nostres formularis i per tant no els ompliran. Per contra, si seran visibles camps com nom, email o empresa que seran els que omplin els nostres clients. Fugim de diferenciar-los amb classes diferents perquè no resultin sospitosos i apliquem els estils a través d'un "id".
Un camp-parany especialment útil és un al que anomenarem "url", molt atractiu per als spam de cara a incloure una adreça web, una informació per la qual la majoria dels formularis no tenen cap interès.
Si els noms dels diferents camps són raonables i l'única diferència és si es veuen o no en pantalla, els bots no seran capaços de diferenciar-los i, molt probablement, inclouran informació en aquests camps-parany.
Tot just una línia de CSS per definir els camps no visibles
CSS mínim però intel·ligent
Com sabreu, l'identificatiu "name" dels inputs dels formularis és el que recull el fitxer php que gestiona el formulari. Per contra, l'identificatiu “id” vincula a un camp amb una etiqueta (label). Però, amb independència d'aquesta funció, pot servir per aplicar un estil particular a aquest camp.
A més, per aplicar estils als formularis, sol ser suficient amb aplicar-los als tipus. Podem definir estils per a "input" o per "button"; podem diferenciar-los a través del "id" del propi formulari o, en última instància, podem crear una classe per aplicar estils als nostres camps.
Per tant, que tal si incloem l'identificatiu "id" en tots els nostres camps per, des de la fulla d'estils CSS, decidir quins camps es visualitzen i quins no. Són només dues línies. Agrupem amb comes els camps visibles i els apliquem l'estil “display:block”. Per contra, els camps que no volem que es vegin aniran agrupats amb l'estil “display:none”.
Si els teus formularis inclouen etiquetes (label), aquestes hauran d'incloure una "id" que haurem de amagar també el el fitxer CSS.
Un formulari perfectament normal, encara que tingui dos camps no visibles
PHP: el parany final
Ara estem segurs que, si arriba alguna dada dins dels camps ocults, aquest correu és spam. Hi hauria aconseguit saltar nostre sistema captcha, però no s'ha adonat que el formulari contenia camps-parany. Només hem de rebutjar-lo. Però, potser, si ho rebutgem, estem convidant a el bot a seguir intentant trancar el nostre sistema fins que descobreixi com saltar els nostres camps amagats.
Al detectar que algú dels nostres camps-parany no està buit generarem una resposta del tipus: "Gràcies per posar-se en contacte amb nosaltres, en breu ens posarem en contacte amb vostè". Però, per contra, bloquejarem l'enviament de l'correu.
La millor estratègia serà tornar-los a enganyar, que pensi que ha aconseguit el seu objectiu. Per tant, en lloc d'executar un "exit", la millor opció serà enviar-los a una pàgina del tipus: "gràcies-per-la seva-correo.html".
El bot creurà haver completat la seva missió i no seguirà intentant trencar el nostre captcha.
Descàrrega gratuïta
Si vols disposar d'un formulari amb camps ocults, les seves línies d'estil CSS i de PHP per gestionar-lo, només has de donar-te d'alta a la nostra base de dades i descarregar-los gratuïtament.
En aquests links tens accés al fitxer .rar i a les instruccions d'instal·lació.
Ja estic donat d'alta a la base de dada
Si ja estàs donat d'alta a la nostra base de dades, introdueix el teu correu electrònic
No estic donat d'alta a la base de dadas
Omple les teves dades en aquest formulari per accedir al fitxer .rar.
Data publicació: 25-11-2020
Serveis de disseny i programació web

