Antispam en Contact Form 7

votaraddthis

El spam es una lacra, una malevolencia y un tocamiento de dídimos a toda la sociedad. Mi blog recibe más de 4000 comentarios spam al mes y siguen creciendo. Seguramente que los grandes blogueros tienen muchas más. Algunas personas parecen que se aburren mucho, tienen bastante suerte. El odiado spam se infiltra por todos los lados como la suciedad y la porquería, incluso en los formularios de contactos. Los bots programados y unas cuantas personas pueden llenarnos la bandeja de entrada con contenido inútil perdiendo tiempo en el proceso. En el post de hoy aprenderemos métodos para paliar el spam vía formularios. En algunos sitios puede llegar a ser un problemas. En concreto, veremos como poner trabas en los formularios creados en Contact Form 7.

AntiSpamContactForm7

Akismet

El plugin antispam de WordPress no podía quedarse fuera como supondréis. Si tenemos activado con su correspondiente clave API podemos emplear este método.  Tenemos tres sentencias muy sencillas sin añadir ningún campo adicional al formulario para defendernos del spam. Akismet actúa como filtro para rechazarlo. Se puede añadir al campo autor, al campo email o al campo url. Cuando estamos dentro de la edición de un formulario en Contact Form 7, tenemos realizar los siguientes cambios:

[text* nombre-usuario] por [text* nombre-usuario akismet:author]

[email* email] por [email* email akismet:author_email]

[text url-autor akismet:author_url] por [text url-autor akismet:author_url]

Recuerdo que los campos con un asterisco significan que son obligatorios de rellenar. Dependerá mucho del tipo de formulario para incluir uno, alguno o todo. En la página oficial de Contact Form 7 recomiendan incluir todas la etiquetas si existen todos los campos. Aunque con una, bastaría para funcionar correctamente el escudo antispam. De este modo, Akismet juzgará si es spam o no el formulario rellenado.

IP del spameador

Ya no es sólo que Google conozca más de las personas que ellas mismas, sino que también un simle plugin como Contact form 7 detecta nuestra IP. Además de las páginas que te indican tu IP o, lo contrario, de dónde viene una IP. El conocimiento es el oro del siglo XXI. Puede que los ataques spam provengan más de un bot o sean varias personas, pero si sólo es un spameador tenemos la solución. Teniendo la IP del intruso, la podemos banear para que no vuelva entrar a nuestro blog. Existen plugin que banean IPs como el completo iThemes Security o el sencillo WP Ban. Para obtener la IP, añadimos [wpcf7.remote_ip] en el cuerpo del mensaje que nos llega automáticmante al rellenar el formulario por parte del usuario.

CAPTCHA

Reconozco que he usado y sufrido los captcha como todos pero nunca he buscado su acrónimo. Escribiendo durante el post me animé y me llevé una sorpresa. Significa Completely Automated Public Turing test to tell Computers and Humans Apart, es decir, prueba de Turing completamente automática y pública para diferenciar computadoras de humanos. Alan Turing fue un importante matemático del siglo XX siendo el precursor de la computación dando paso a la informática. Muy pocos más allá de las carreras de Matemáticas o Informática les sonará el nombre, pero creo que merece la pena la introducción.

Como casi todo el mundo sabrá que los captchas son imágenes de letras, números o ambos parcialmente distorsionadas para impedir que un bot adivine lo que realmente es. Si queremos implementar esta defensa antispam el plugin Really Simple CAPTCHA es la solución. Se complementa con el formulario siendo de los mismos desarrolladores y el código será análogo al siguiente tras dar a generar etiqueta: [captchac captcha-1] para la imagen y [captchar captcha-1] para el input al escribir las letras de la imagen.

Si preferís, como yo, un acertijo sencillo para sumar o restar números dando una respuesta correcta, Contact Form 7 ya incluye en el propio plugin un captcha de esa categoría. Se tarda menos en responder uno o dos dígitos que 5 o 6 caracteres.

Campo oculto Honeypot

El plugin Honeypot de Contact Form 7 tiene una idea sencilla como indica su propio nombre con la miel para atraer a los spam. El planteamiento se desarrolla de la siguiente manera: añadir un campo oculto a los usuarios por lo que no lo cumplimentarán. Sin embargo, un bot no tiene la capacidad para discernir entre los campos reales y los trampa, teniendo como consecuencia rellenar todos por defecto. La trampa se adhiere sobre el spam como la miel. Una persona no completa un campo invisible, un bot no cumple ese requisito.

Para insertar este campo simplemente tenemos que ir al formulario en cuestión y en el generador de tags seleccionar Honeypot. Nos proporcionará un código semejante al siguiente [honeypot nombre-del-campo], lo insertamos entre medias y ya está.

Bad Behavior

El plugin se traduce como mala conducta. La particularidad de Bad Behavior consiste en despreocuparnos por los spam y ellos se encargan de la basura. Es una solución escrita en PHP. Complementa otras defensas contra el spam, actuando como un guardián, impidiendo que los spameadores nos molesten. Mala conducta ha sido diseñado para trabajar junto a los servicios de prevención de spams existentes para aumentar su eficacia. Es decir, se automejora y aprende cuáles son los chicos malos. Bloqueado la carga extra de bots, optimizará el rendimiento de nuestro sitio descargando trabajo al servidor. Aparte de WordPress soporta MediaWiki, Drupal, ExpressionEngine, LifeType, Movable Type y phpBB.

Conclusión

Un plugin como Contact Form 7 tiene unos cuantos complementos que nos ayudan contra el spam. Existen diferentes métodos y técnicas que atajan el problema desde diversos ángulos. Siempre habrá personas y programas dando la vara, pero no podemos rendirnos. Estos sistemas son bastante eficientes para protegernos de esta lacra. ¿Usáis algún sistema descrito? ¿Empleáis otros u otros sistemas? Siempre estamos aprendiendo entre todos. Espero vuestros comentarios.