Protege tu web del SPAM con PHP y Akismet

Akismet el servicio que filtra los mensajes considerados como SPAM que es ampliamente utilizado en WordPress también tiene un API que permite utilizarlo en cualquier proyecto web. Esto permitirá hacer una revisión previa de los comentarios enviados por los usuarios antes de aceptarlos y guardarlos en base de datos.

Metodología para verificar el SPAM

Antes de que cualquier mensaje enviado por el usuario sea publicado en nuestra página, este debe ser aprobado previamente por el administrador, esto para evitar que se publiquen mensajes no deseados.

Por ello es necesario primero verificar el mensaje si es considerado como spam por Akismet y posteriormente guardar estos datos en una base de datos para ser verificados por el administrador. Luego en el administrador de nuestro sitio debe haber un panel donde podríamos realizar las siguientes acciones:

  • Aprobar el Mensaje: el mensaje se publica y es visible en nuestra página.
  • Marcar como SPAM: se reporta el contenido del mensaje como spam a los servidores de Akismet .
  • Marcar como NO-SPAM: si el mensaje se ha detectado como spam, nosotros podemos revisarlo y marcar el mensaje como no-spam.

Clase PHP para utilizar Akismet

Para interactuar con el API de Akismet se puede descargar el archivo class.akismet.php desarrollada por epictrim y que ofrece métodos sencillos para verificar el contenido ingresado por el usuario.

Para utilizar esta clase, incluimos el archivo class.akismet.php al inicio de nuestro script PHP, creamos una instancia de la clase y asignamos los siguientes parámetros.

  • apikey: es tu API Key de Akismet . (Obtén tu Key en API key signup)
  • name: es el nombre del usuario que envía el formulario.
  • email: email del usuario que envía el formulario.
  • message: mensaje que se desea verificar.
  • type: tipo de formulario (comment, trackback, pingback, registration)

Verificando si el mensaje es SPAM

Si se desea verificar si los datos enviados por el usuario se puede utilizar el método isSpam el cual devuelve verdadero en el caso que el mensaje sea considerado como spam en la base de datos de Akismet.

[php]
require(“class.akismet.php”);
// creamos una instancia de la clase
$akismet = new Akismet();
$akismet->apikey = “your-akismet-key”;
$akismet->name = “Demo User”;
$akismet->email = “demo@example.com”;
$akismet->message = “Hello my name is Akismet…”;
// verificamos el mensaje
if ($akismet->isSpam()) {
echo “Mensaje Spam!!!”;
} else {
echo “Mensaje Valido”;
}
[/php]

Marcar un Mensaje como SPAM

Akismet ofrece un método mediante el cual se puede reportar un mensaje como spam de tal forma que se registre en su base de datos para que posteriormente sea considerado automáticamente como spam. La clase con la que trabajamos ofrece el método submitSpam con el cual reportamos un mensaje como spam.

[php]
require(“class.akismet.php”);
// creamos una instancia de la clase
$akismet = new Akismet();
$akismet->apikey = “your-akismet-key”;
$akismet->name = “Viagra”;
$akismet->email = “viagra@example.com”;
$akismet->message = “Hello…”;
// marcamos el mensaje como spam
$akismet->submitSpam();
[/php]

Marcar el Mensaje como NO-SPAM

En el caso que un mensaje ha sido considerado como spam por Akismet, nosotros podemos marcarlo como no-spam, para ello haremos uso del método submitHam de la siguiente forma.

[php]
require(“class.akismet.php”);
// creamos una instancia de la clase
$akismet = new Akismet();
$akismet->apikey = “your-akismet-key”;
$akismet->name = “Valid Friend”;
$akismet->email = “friend-name@example.com”;
$akismet->message = “Hello…”;
// marcamos el mensaje como no-spam
$akismet->submitHam();
[/php]

Como se puede observar interactuar con Akismet es sencillo utilizando esta clase. Con los tres métodos ofrecidos podemos verificar si el mensaje es considerado con spam, podemos reportar spam y también desmarcar el spam.

Más Información

Comentarios Total 4 comentarios


Natania Mendoza
Publicado: 01/06/2011 10:39 am

Excelente artículo! Uso akismet desde hace año en mis plataformas de WordPress y la verdad que no tenía conocimiento de que podía utilizarse en cualquier sitio mediante su API. Gracias por el aporte!

Liodetemas
Publicado: 25/07/2011 3:07 pm

Muy interesante el post =)

epictrim
Publicado: 30/08/2011 10:16 pm

Thanks for the mention! :D

Toni
Publicado: 18/03/2014 10:45 pm

Voy a probarlo , lo acabo de descargar pero por lo que hablan de el…estaba deseando tenerlo instalado y sentirme seguro

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)