No más spam! Akismet y PHP al rescate

baluart10 Septiembre 2006 - 10:01pm 6 comentarios
Enviar por Email Imprimir

Uno de los mayores problemas al mantener un blog, es la gran cantidad de spam que se recibe. Existen varios métodos para combatirlos, desde banear ips, urls ó filtrar palabras hasta implementar captchas o solicitar registros.

En BaluArt, como blog de desarrollo propio, implementé varios de estos métodos, empezando con el registro. Hasta hace unos días utilizaba la mezcla de varios métodos (javascript con variable oculta, filtro de palabras y banneo de ips) con muy buen resultado al principio, pero desde hace unas semanas ya no era el mismo. Y como muchos blogs comentaron sobre las bondades de Akismet (conocido plugin antispam de WordPress) decidí implementarlo. El resultado ha sido muy bueno.

¿Cómo funciona Akismet?

Debo empezar diciendo que no es sólo un plugin para WordPress (también los hay para MovableType y otros cms). Akismet es básicamente un servicio web que analiza los comentarios:

  1. Un script envía los comentarios a un servidor central,
  2. Akismet analiza los comentarios
  3. Akismet devuelve la información: si es spam o no.

Al ver sus estadísticas, uno se percata que Akismet es muy utilizado. En estos momentos ya ha capturado 188,509,207 spams, y cerca de 60,000 sólo hoy día. Según he leído, su potencia para analizar los comentarios es muy buena, han implementado un algoritmo que incluso evitaría el manipuleo de su base de datos contra los spammers que envíen spam como comentarios buenos y viceversa, envenenando la base de datos. En el blog llevamos usándolo 2 días y ha cazado todos (350 más o menos).

Veamos entonces como implementarlo en un sitio web cualquiera (blog, portal, foro u otro) con PHP.

Implementando un sistema anti-spam con Akismet y PHP

Akismet es un web service muy potente, pero también muy fácil de utilizar. Sin embargo, como medida de seguridad (imagínense cuantos spammers estarán tras el saboteo de este sistema), lo primero es tener una API Key -clave para poder utilizar su API-, para esto, simplemente, debemos registrarnos en wordpress.com y la obtendremos.

El segundo paso es descargar la clase Akismet.para PHP 4, también las hay para PHP 5, Java, Ruby y otros en la sección de desarrollo de Akismet. Les dije que todo era muy fácil. Una vez desempaquetado el archivo, subimos el fichero Akismet.class.php a nuestro servidor.

Finalmente, en el archivo que procesa el formulario, y antes del código que inserta el comentario a la Base de Datos, añadimos este script:

<?php
include ('Akismet.class.php'); // path a la clase

// Creamos una instancia del objeto y le pasamos nuestra URL y la API Key
$akismet = new Akismet('http://www.baluart.net', 'TU API KEY AQUÍ');

// Recuperamos las variables enviadas con el formulario y las enviamos como atributos de de la clase akismet
$akismet->setCommentAuthor($_POST["autor"]);
$akismet->setCommentAuthorEmail($_POST["email"]);
$akismet->setCommentAuthorURL($_POST["url"]);
$akismet->setCommentContent($_POST["comentario"]);

// Si el comentario enviado es spam, lo insertamos a la BD pero no se muestra
if($akismet->isCommentSpam() == true) {
$_POST['validez'] = "0";

// Si no lo es, se muestra el comentario
} else {
$_POST['validez'] = "1";
}
?>

Cabe mencionar que con este código, insertamos el spam a la BD (no se muestra públicamente) para comprobar que no se esté filtrando comentarios verdaderos. Ya luego podremos eliminarlos fácilmente desde el panel de administración. Sin embargo, depende de cada quien procesarlo como mejor le parezca (modificando el condicional).

Eso es todo, ya tenemos un eficiente sistema anti-spam en nuestra web.

Comentarios

Imagen de Lenin
Lenin

Funcionara para web servers?

Imagen de sdfsdfsd
sdfsdfsd

Muy bien

Imagen de Cadenas

muy bueno, para Joomla también sirve??

Imagen de mandarina
Imagen de josepzin
Imagen de Anonymous
Anonymous

como se hace una variable en el mismo codigo para agregar una lista de palabras no permitidas

Dejar comentario

Tutoriales

Cómo descargar videos de VK.com
En este artículo voy a explicar como descargar videos y películas...
Descargar Facebook Móvil Gratis
Por si aún no lo han hecho, es posible descargar Facebook Móvil...
Cómo generar tráfico web con las redes sociales - Paso a Paso
Muchas empresas están publicando contenidos como la forma de crear...

Artículo Recomendado

3 Tips cruciales para recuperar archivos eliminados
¿Te imaginas perder el trabajo de toda una semana en tan solo unos segundos? Todos hemos pasado por este problema. Quizás eliminamos por error un archivo importante o lo borramos sin pensar que era valioso para otro... más