El spam es uno de los principales escollos de la web social.. Según sitios como Postini, 10 de los 12 mensajes de correo electrónico son spam. Como si eso no fuera suficiente para hacerte temblar, 1 de cada 39 correos electrónicos contiene un virus. El spam también está penetrando en otras regiones de Internet. Los creadores del software de blogs Wordpress informan que casi el 87% de todos los comentarios del blog también son spam. A medida que las aplicaciones de mensajería y comunicación proliferan en la web, los desarrolladores y propietarios de sitios tienen que ser creativos en la lucha contra los miles y miles de mensajes no deseados que se transmiten todos los días. Decidir cuál es el mejor método de prevención de spam en sus blogs, foros o incluso formularios de contacto puede ser difícil. En este artículo analizaremos un servicio llamado Akismet y cómo puede ayudar. También veremos por qué algunos otros métodos para combatir el spam fallan..
Anulando múltiples presentaciones consecutivas. Los spammers casi siempre publican más de un comentario o mensaje de SPAM a la vez. Un método común para combatir el spam es registrar el mensaje entrante con la dirección IP del usuario y una marca de tiempo de la publicación. Luego, cuando un usuario intenta publicar varios comentarios, puede verificar si el usuario ha publicado más de una vez dentro de una ventana de tiempo específica, por ejemplo, 30 segundos, o si el póster actual también fue el último póster. Este no es un método a prueba de balas porque los spammers pueden usar proxies cuando quieren publicar varias veces, y los robots tienen todo el tiempo del mundo que desean para spam su sitio..
Lista negra de palabras clave. Otro método para combatir el spam es crear una lista negra de palabras clave comunes de spam y no permitir publicaciones que contengan las palabras. En su forma más simple, puede crear una matriz de palabras clave y verificar si una cadena entrante las contiene. Los spammers han desarrollado defensas contra este método al publicar variaciones de las palabras. Reemplazan las letras con números, símbolos y otros caracteres similares para crear una amplia selección de variaciones de palabras clave.
CAPTCHA. CAPTCHA (Prueba de Turing Pública Completamente Automatizada) es una de las técnicas de prevención de spam más comunes en la web hoy en día. La técnica es muy útil, y casi cualquier sitio que le permita registrarse para una cuenta o publicar información utiliza CAPTCHA públicamente de una forma u otra. Las pruebas CAPTCHA pueden ser archivos de audio, pero son más comúnmente imágenes que presentan una serie de caracteres y números que debe ingresar en un formulario. La técnica es una herramienta útil para bloquear robots que intentan visitar su sitio para publicar mensajes de spam o crear cuentas falsas con información falsa.
CAPTCHA funciona bien para su uso previsto, pero hay inconvenientes menores. Un CAPTCHA requiere (aún otro) campo para que los usuarios completen después de ingresar nombres de usuario, contraseñas y preguntas de seguridad. Comprensiblemente hay un factor de molestia que acompaña su uso. Además, es posible que los usuarios deshabilitados no puedan usar el campo CAPTCHA. Finalmente, los spammers humanos también pueden enviar spam a su sitio porque un CAPTCHA solo bloquea a los robots spammers.
Habiendo revisado algunos de los métodos actuales y sus puntos débiles, es posible que se esté preguntando qué más podemos hacer para proteger nuestras aplicaciones de blogs. Me gustaría presentar una nueva herramienta de lucha contra el spam de los creadores de WordPress. El servicio se llama Akismet y es descrito por sus creadores como un "... esfuerzo de colaboración para hacer que el spam de comentarios y trackback no sea un problema y restaurar la inocencia de los blogs, por lo que nunca más tendrá que preocuparse por el spam".
La herramienta se puede implementar en cualquier proyecto siempre que tenga una clave de API, que se puede usar gratis para uso no comercial o comprar para uso comercial por tan solo $ 5 al mes. Hay varios complementos de Akismet para el software existente, y estos se identifican más adelante en este artículo. Alternativamente, puede incluir el servicio en sus propios proyectos, como demostraremos.
A partir de ahora, la única forma de recibir una clave API es registrarse para obtener una cuenta de usuario de WordPress.com gratuita. Gire sus navegadores hacia http://wordpress.com/signup/ y complete los campos obligatorios normales: nombre de usuario, contraseña y correo electrónico como se ve a continuación y luego lea y acepte los términos del acuerdo de servicio. Asegúrese de registrarse en un blog ya que no puede recibir una clave API sin el registro. No te preocupes por este detalle, porque la clave API no estará vinculada a un blog específico. Una vez que haya finalizado el proceso de registro, debe recibir un correo electrónico con su nueva clave API.
Ahora deberá descargar y descomprimir PHP5Akismet.0.4.zip (24K) de Achingbrain. Suba el archivo php único a un área accesible por sus scripts. Los otros archivos y documentación son solo para referencia..
Asumiremos que está trabajando con un proyecto existente. Esto podría ser cualquier cosa que permita las contribuciones de los usuarios, como un foro o blog. También asumiremos que la lógica para crear y mostrar contenido ya existe. Con eso en mente, nuestro primer paso es cargar el archivo en nuestro propio proyecto..
incluya "ruta / a / archivo / Akismet.class.php";
A continuación, tendremos que crear una nueva instancia de la clase Akismet. Usando el constructor de clases, podemos pasar nuestra clave de API y la URL del sitio que lo usa. Asegúrese de reemplazar los siguientes datos con los suyos.
$ akismet = new Akismet ("http://myblog.com", "API KEY HERE");
Ahora el servicio necesita los datos de comentarios reales que queremos verificar. En la siguiente instancia, estoy usando algunos datos de ejemplo, pero en producción, la información del comentario se derivaría de los datos de POST. El servicio de Akismet comparará la información del comentario con una base de datos de más de 7,486,928,953 comentarios de spam y devolverá un resultado si la publicación enviada ha sido identificada como un comentario de spam..
$ akismet-> setCommentAuthor ("Justin Shreve"); $ akismet-> setCommentAuthorEmail ("[email protected]"); $ akismet-> setCommentAuthorURL ("http://serenelabs.com"); $ akismet-> setCommentType ("foros"); $ akismet-> setCommentContent ("¡Realmente estoy de acuerdo con lo que está diciendo! ¡No puedo creer que nunca haya pensado en eso antes!");
Las funciones presentadas aquí son bastante sencillas. La única función que requiere alguna explicación adicional es la función setCommentType. Akismet usa esto para ayudar al servicio a identificar el origen del comentario (¿se publicó en un grupo de noticias público, foro o blog?), Y puede pasar cualquier argumento que desee. Por ejemplo, si está utilizando la función para hacer una prueba de spam de una wiki, entonces use wiki como tipo. Si está protegiendo un blog, entonces use un tipo de blog.
Ahora usaremos una función llamada isCommentSpam. Esta es la función que realmente contacta con el servicio. La función booleana devolverá true si el comentario se identifica como spam y false si el comentario se verifica como legítimo.
if ($ akismet-> isCommentSpam ()) // Aquí podemos almacenar la lógica para hacer frente a los comentarios de spam. // Por lo general, podemos almacenar el comentario internamente para futuras referencias en caso de que el servicio cometa un error. else // Aquí es donde insertaría el contenido en la base de datos.
¡Usar Akismet es tan simple como estas pocas líneas de código! Ahora ha integrado un servicio de lucha contra el spam en su sitio. El servicio se puede utilizar junto con las otras formas de defensa contra el spam mencionadas anteriormente. Tenga en cuenta que Akismet es un servicio que crece cada vez que lo usa porque las funciones contribuyen con su contenido de spam a la base de datos. Puede haber mensajes válidos a veces identificados como spam y viceversa. Como resultado, es posible que desee integrar un poco más de funcionalidad para hacer frente a una posible identificación errónea.
Si un mensaje se identifica erróneamente como SPAM, puede notificarlo a Akismet, y lo tratarán en consecuencia. Alternativamente, puede marcar un comentario como SPAM si sucedió que caía a través del filtro Akismet. Al implementar la siguiente funcionalidad, asegúrese de que los datos de comentarios en las variables estén configurados en el mismo formato que el anterior.
La función
$ akismet-> submitHam ();
se puede usar para notificar al servicio que el comentario que informaron como spam está realmente bien.
Mientras que la función
$ akismet-> submitSpam ();
se puede usar para notificar al servicio que un comentario que fue aprobado en realidad es una pieza de spam.
PHP5 no es para todos. Las bibliotecas de Akismet también se han creado en muchos otros idiomas. A continuación se muestran algunos de los más populares:
Todo esto se puede integrar fácilmente en sus proyectos de la misma manera que se describe anteriormente..
¿No siente la necesidad de utilizar su propio software pero aún desea utilizar Akismet? Ya existen muchas soluciones para software de blog, CMS o foro:
Espero que esta guía sirva como introducción a algunas formas alternativas de combate de spam. Un sitio sin SPAM no solo parece más profesional para los usuarios, sino que también es mucho más fácil de administrar para administradores y moderadores..