Morton 11 de agosto de 2014 a las 09.45
   Imprimir artículo
elWebmaster.com

WordPress: C贸mo detener el spam en tus comentarios


wordpress-wideSeguro que si tienes un blog o sitio web hecho con WordPress, sufres el mismo problema contra el que todos luchamos a diario: miles de comentarios llenos de spam por d铆a. Aqu铆 te acercamos un truco para lograr que esto deje de suceder de una buena vez.

El primer paso es desactivar todos los plugins anti-spam si tenemos m谩s de uno, ya que pueden estar anul谩ndose entre ellos. Para lo siguiente, necesitaremos a帽adir algunas comprobaciones. No podemos simplemente agregar inputs en el lado del servidor, son outputs a la p谩gina y el boy puede leerlos e invadirlos.聽 Creando esos campos del lado del cliente elimina los bots m谩s b谩sicos. Puedes agregar los campus del formulario con Java Script y apostar a eso. Pero antes, vamos a implementar la comprobaci贸n de bloqueo de spam del lado del servidor.

Antes de aceptar un comentario de ese lado, necesitaremos comprobar la presencia de la llave din谩mica. Todos lo que necesitamos es un check de isset:

function preprocess_new_comment($commentdata) {
	if(!isset($_POST['is_legit'])) {
		die('You are bullshit');
	}
	return $commentdata;
}
if(function_exists('add_action')) {
	add_action('preprocess_comment',
'preprocess_new_comment');
}

Si el check falla, el comentario es rechazado (por supuesto, esto significa que si los usuarios sin soporte de JavaScript ver谩n sus comentarios rechazados). Si la llave no est谩 definida, rechazamos completamente el comentario.

La respuesta simple aqu铆 es usar JavaScript b谩sico para inyectar los campos del formulario, y dado que cada framework JS tiene su propia sintaxis, habr谩 que adaptarlo. Agregando dicho campo por sobre la carga de la p谩gina se ve algo sospechoso, por lo cual puede ser endeble al ataque de un bot inteligente.

Si los comentarios de tu sitio son enviados a trav茅s de AJAX, a帽ade el campo secreto dentro de c贸digo Javascript:

var form = $('comment-form');

new Request({
    url: form.action,
    method: 'post',
    onRequest: function() {},
    onSuccess: function(content) {},
    onComplete: function() {}
  }).send(form.toQueryString() + '&is_legit=1');
});

Eso fue todo 隆Esperamos que te sea de utilidad!

Fuente original del art铆culo: David Walsh Blog
Traducci贸n realizada por
elWebmaster.com


Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Acceder