Cómo combatir el spam en phpBB
28 de Noviembre de 2006 por Diego Rottman
Todo administrador de un foro más o menos popular que corra bajo phpBB estará padeciendo por estos días una oleada de spam. Mensajes de spambots van copando el lugar donde hasta entonces discutían humanos.
La comunidad de phpBB ofrece tres grandes tópicos sobre el tema (1, 2 y 3) que confunden más de lo que orientan.
Pero ayer se publicó un mensaje que propone una solución eficaz y sencilla que no exige captchas (los codiguitos de letras y números para verificar que se trata de un ser humano y no de un robot) ni otros complejos sistemas de verificación. Y, a ojos del usuario final, nada cambia. Lo testeé y (hasta que los spammers le encuentren la vuelta) funciona. Vale la pena implementarlo por el poco esfuerzo que exige:
1. Edite la plantilla ubicada en
templates/su_estilo/posting_body.tpl. Busque la etiqueta “form” y agregue enctype=”multipart/form-data” como se muestra acá:
<form action=”{S_POST_ACTION}” method=”post” name=”post” onsubmit=”return checkForm(this)” enctype=”multipart/form-data”>
2. Edite el archivo posting.php alrededor de la línea 560, agregando lo que figura en negrita:
switch ( $mode )
{
case 'editpost':
case 'newtopic':
case 'reply':
$username = ( !empty($HTTP_POST_VARS['username']) ) ? $HTTP_POST_VARS['username'] : ”;
$subject = ( !empty($HTTP_POST_VARS['subject']) ) ? trim($HTTP_POST_VARS['subject']) : ”;
$message = ( !empty($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : ”;
$poll_title = ( isset($HTTP_POST_VARS['poll_title']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_title'] : ”;
$poll_options = ( isset($HTTP_POST_VARS['poll_option_text']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_option_text'] : ”;
$poll_length = ( isset($HTTP_POST_VARS['poll_length']) && $is_auth['auth_pollcreate'] ) ? $HTTP_POST_VARS['poll_length'] : ”;
$bbcode_uid = ”; if(!eregi(’^multipart/form\-data’,trim($_SERVER['CONTENT_TYPE'])))
{
echo “No se acepta spam. Tómeselas.”;
exit();
}
prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg, $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $poll_length);
¡Listo! Sólo resta subir los dos archivos al servidor.
Volver
Archivado en: cibercultura
13 acotaron
1. rutiguer | 10/12/2006 a las 19:40
a mi no me funciona.
me devuelve esto:
Warning: Unexpected character in input: ‘\’ (ASCII=92) state=1 in ***\posting.php on line 560
y el enlace al mensaje que pones, ya no existe.
¿sabes si lo han cambiado a algun sitio?
2. Diego Rottman | 11/12/2006 a las 9:12
rutiguer:
el error está hablando de una barra de más o de menos.
es verdad que el tema fue borrado, pero todavía podés consultarlo en el cache de Google:
3. Dragon | 12/12/2006 a las 18:34
el problema es que el autor del hilo puso mal las comillas, seria de la siguiente manera:
if(!eregi(’^multipart/form\-data’,trim($_SERVER['CONTENT_TYPE'])))
{
echo “Spam not accepted. Go away.”;
exit();
}
4. Desguace | 12/12/2006 a las 18:36
Por si no lo ven, la diferencia esta entre esta: ` y esta: ‘
5. yayo | 19/12/2006 a las 17:16
Excelente solución!!! Me funciono a la perfección… esperemos que perdure ;)
6. jorge | 19/03/2007 a las 16:03
Muchas gracias, a mi me funcionó.
7. Thomas | 24/03/2007 a las 14:39
Sí funciona, pero por lo menos en dreamweaver copiar y pegar el código corregido que pegó Dragon no basta, hay que corregir nuevamente las ´ por ‘ y las comillas dobles de “Spam not accepted. Go away.” también se pegan diferentes. Al final de cuentas me funcionó.
8. Pyare | 12/04/2007 a las 15:30
Bueno amigos, buscando por la web y confieso que muy desesperado sobre como combatir los spam encontré esta página. he hecho todo al pie de las letra, hasta ahora todo bien, es decir, el foro no se me ha caído ni me ha salido ningún mensaje de error, pero esperemos a lo mas importante, a ver si realmente funciona contra los spam ;-)
9. ynakasone | 21/04/2007 a las 20:36
Hola, yo agrege una pregunta al registro y ya no tengo mas spams, cualquier consulta contactenme y visiten:
http://www.niponcomputer.com/
Saludos
10. Victor | 13/05/2007 a las 12:41
No se qu error cometi, pero me considera spam lo que escribo ¬¬
11. MoY | 17/05/2007 a las 3:39
pues hice lo que dices, pero aun asi me sigue marcando errores mira:
Warning: Unexpected character in input: ‘\’ (ASCII=92) state=1 in /var/www/html/foros/posting.php on line 603
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/foros/posting.php:603) in /var/www/html/foros/includes/sessions.php on line 329
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/foros/posting.php:603) in /var/www/html/foros/includes/sessions.php on line 330
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/foros/posting.php:603) in /var/www/html/foros/includes/functions.php on line 803
——
si alguien sabe algo al respecto me ENCANTARIA saber, ya que tengo 2100 users en mi foro, de los cuales 2000 son spambots.
12. Jorge | 23/05/2007 a las 8:25
A mi me ocurre lo mismo que a Victor.
Todo lo que escribo me lo considera spam y creo haber hecho todo bien…
Al principio me daba el error de las comillas pero luego solucionado, pero lo de ahora es sorprendente, no se puede escribir nada porque todo lo considera spam.
13. Juanico1931 | 13/06/2007 a las 9:10
A mi me pasaba lo mismo. Seguramente lo hallais arreglado en el fichero posting.php, pero dentro del fichero templates/su_estilo/posting_body.tpl también hay que arreglarle lo de las comillas.