Combatir el spam desde tu tema

Hemos visto ya varios modos de combatir el spam de comentarios y hoy vamos a ampliar nuestro arsenal con un truco que activaremos en el fichero functions.php de nuestro tema activo, con lo que es totalmente exportable a otros sitios sin modificar configuración alguna.

evitar spam

Lo único que tienes que hacer es añadir este código:

function in_comment_post_like($string, $array) {
	foreach($array as $ref) { if(strstr($string, $ref)) { return true; } }
	return false;
}
function drop_bad_comments() {
	if (!empty($_POST['comment'])) {
		$post_comment_content = $_POST['comment'];
		$lower_case_comment = strtolower($_POST['comment']);
		$bad_comment_content = array(
			'viagra',
			'hydrocodone',
			'hair loss',
			'[url=http',
			'[link=http',
			'xanax',
			'tramadol',
			'russian girls',
			'russian brides',
			'lorazepam',
			'adderall',
			'dexadrine',
			'no prescription',
			'oxycontin',
			'without a prescription',
			'sex pics',
			'family incest',
			'online casinos',
			'online dating',
			'cialis',
			'best forex',
			'amoxicillin'
		);
		if (in_comment_post_like($lower_case_comment, $bad_comment_content)) {
			$comment_box_text = wordwrap(trim($post_comment_content), 80, "\n  ", true);
			$txtdrop = fopen('/var/log/httpd/wp_post-logger/nullamatix.com-text-area_dropped.txt', 'a');
			fwrite($txtdrop, "  --------------\n  [COMMENT] = " . $post_comment_content . "\n  --------------\n");
			fwrite($txtdrop, "  [SOURCE_IP] = " . $_SERVER['REMOTE_ADDR'] . " @ " . date("F j, Y, g:i a") . "\n");
			fwrite($txtdrop, "  [USERAGENT] = " . $_SERVER['HTTP_USER_AGENT'] . "\n");
			fwrite($txtdrop, "  [REFERER  ] = " . $_SERVER['HTTP_REFERER'] . "\n");
			fwrite($txtdrop, "  [FILE_NAME] = " . $_SERVER['SCRIPT_NAME'] . " - [REQ_URI] = " . $_SERVER['REQUEST_URI'] . "\n");
			fwrite($txtdrop, '--------------**********------------------'."\n");
			header("HTTP/1.1 406 Not Acceptable");
			header("Status: 406 Not Acceptable");
			header("Connection: Close");
			wp_die( __('bang bang.') );
		}
	}
}
add_action('init', 'drop_bad_comments');

Puedes, por supuesto, añadir o quitar palabras y/o expresiones tras el array llamado $bad_comment_content para personalizarlo según tu necesidad.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(0 votos, promedio: 0)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

6 comentarios en “Combatir el spam desde tu tema”

  1. Carlos Montalvo

    Me late que desde la linea 34 a la 41 esta de mas. por que no todos los servidores tendran esta estructura de directorios /var/log/httpd/wp_post-logger/ asi que guardarlo en un log creo que esta demas. salvo que seas un amante de los log :D. aunque para mi la solucion mas facil seria lograr cambiar el nombre del wp-comments-post.php pero tendrias que hacer varias modificaciones. seria bueno que wordpress implemente una funcionalidad para poder cambiarlo de nombre sin afectar la funcionalidad de wordpress.

    PD: wp-comments-post.php es el archivo que la mayoria de los spam estan dirigidos. si se cambia de nombre no sufriremos un ataque tan seguido.

  2. Pingback: Tweets that mention Combatir el spam desde tu tema | Ayuda WordPress -- Topsy.com

  3. Pingback: Sin tiempo para escribir.46

  4. Pingback: wp-popular.com » Blog Archive » Borrar spam desde el theme

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido