Evita spam en tu blog rechazando comentarios con palabras específicas

  • Autor Autor aldols
  • Fecha de inicio Fecha de inicio
A

aldols

Gamma
Redactor
desd ehace tiempo tenia problemas de spam en uno de mis blogs, diariamente tenia que borrar alrededor de 600 mensajes de spam... aunque wordpress trae un filtro nativo para palabras e ip's WP dejaba los mensaje en moderacion o en la carpeta de spam...

Pero aqui les dejo esta alternativa para rechazar comentarios que contengan ciertas palabras...

en el archivo funtions.php de tu theme agrega lo siguiente..

PHP:
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');

Agrega tus propios términos a rechazar en el array bad_comment_content. A mi me funciono.. ahora solo me llegan 6 comentarios de spam al dia...

espero les sirva..
 
jaja, a mi me llegan pocos igual.
Pero casinos y cosas como viagra, hoteles y esas cosas nunca faltan!

Gracias por compartir!
 
Interesante a mi me sirve mucho para mi nuevo proyecto y asi evitar malas palabras.

Faltaría hacer una lista con palabras usadas por SPAMMERS y con malas palabras, es que en serio todos los dias me putean en mi Blog 🙁
 
Interesante aporte

Gracias por compartirlo 😀
 
Para las malas palabras en el panel de comentarios se puede poner ciertas palabras y elegir entre si mandarlo a moderar o que simplemente se vaya a la bandeja de spam...
 
Atrás
Arriba