Foros del Web » Programando para Internet » PHP »

Sistema anti-robots

Estas en el tema de Sistema anti-robots en el foro de PHP en Foros del Web. Hola, Trabajo con PHP 4.3 + MySql Hace poco se me ha presentado un nuevo problema. Tengo una web de noticias y la gente puede ...
  #1 (permalink)  
Antiguo 20/06/2006, 11:46
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 16 años, 6 meses
Puntos: 1
Sistema anti-robots

Hola,
Trabajo con PHP 4.3 + MySql
Hace poco se me ha presentado un nuevo problema. Tengo una web de noticias y la gente puede darse de alta como usuario para recibir un boletín y otros servicios típicos. El caso es que el otro día un robot (de algún sitio que desconozco) me inyectó mil usuarios en mi sistema, y claro, esos usuarios han sido dados de alta sin consentimiento.

Estoy buscando un script o algo pre-frabricado para añadir en el formulario de alta. Un script de esos que antes de enviar los datos del formulario te pide repetir una palabra (al azar) que aparece distorsionada en una imagen, y así evitar que me vuelvan a meter usuarios automáticamente. Por ejemplo google tiene esto que comento en la sección 'añadir url'.

A ver si hay suerte y alguien me puede ayudar
Muchas gracias y un saludo!
  #2 (permalink)  
Antiguo 20/06/2006, 11:55
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 9 meses
Puntos: 2135
Hay muchas librerias con ese tipo de "imagenes" que mencionas, se les conoce como pruebas CAPTCHA (por sus siglas en Ingles (Completely Automated Public Turing test to tell Computers and Humans Apart (Prueba de Turing pública y automática para diferenciar a máquinas y humanos)))

Hay varias implementaciones hechas en PHP, y la mayoria necesita una base de datos, te recomiendo buscar en google y de seguro encontrara una que se adapte a tus necesidades.
  #3 (permalink)  
Antiguo 20/06/2006, 16:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 18 años, 1 mes
Puntos: 129
Tienes un ejemplo en las FAQ's de este foro ..

http://www.forosdelweb.com/showthrea...501#post815501

Usa simplemente sesiones .. se genera la sesión con el "código" y el mismo se genera como un gráfico .. se presenta junto con tu formulario y se compara lo que el usuario ingresó con el valor de la sesión generada.

Un saludo,

PD: modificaré el título de la FAQ para incluir el término en ingles de esa funcionalidad: Captcha (gracias GatorV)
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 21/06/2006, 04:08
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 16 años, 6 meses
Puntos: 1
Buenísimo el mensaje que me has pasado Cluster, voy a intentar utilizar el código que viene.

Un saludo y muchas gracias a los dos.
  #5 (permalink)  
Antiguo 22/06/2006, 03:49
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 16 años, 6 meses
Puntos: 1
Hola de nuevo.

He implantado el código y funciona OK.
Si alguien quiere verlo funcionando esta es la web (en alta usuarios):
http://www.malagacentro.com

El formulario de usuarios más concretamente está en:
http://www.malagacentro.com/Agenda_A...b=MalagaCentro

Pero debo haceros UN APUNTE: al archivo gen_imagen hay que añadirle al principio que recree la sesión, es decir un session_start(), dado que éste es llamado en el src de la imagen (como petición HTTP) y no puede acceder a las variables de sesión. Lo digo por si les interesa modificar el código que viene en las FAQS...

Un saludo.
  #6 (permalink)  
Antiguo 22/06/2006, 08:57
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 18 años, 1 mes
Puntos: 129
Cita:
Iniciado por bauhaus1975
Hola de nuevo.

He implantado el código y funciona OK.
Si alguien quiere verlo funcionando esta es la web (en alta usuarios):
http://www.malagacentro.com

El formulario de usuarios más concretamente está en:
http://www.malagacentro.com/Agenda_A...b=MalagaCentro

Pero debo haceros UN APUNTE: al archivo gen_imagen hay que añadirle al principio que recree la sesión, es decir un session_start(), dado que éste es llamado en el src de la imagen (como petición HTTP) y no puede acceder a las variables de sesión. Lo digo por si les interesa modificar el código que viene en las FAQS...

Un saludo.
Es cierto .. ya realicé la modificación al respecto.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 22/06/2006, 11:08
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 13 años, 8 meses
Puntos: 7
Cita:
Iniciado por bauhaus1975
Hola de nuevo.

He implantado el código y funciona OK...
Entre a la url del formulario para hecharle un vistaso y realizar la siguiente prueba:

en el campo donde se debe ingresar el codigo de confirmacion introduje otro dato distinto al que me aparecia en la imagen y el formulario se envio correctamente, mostrandome un mensaje que decia que se habia enviado un email a mi cuenta para confirmar la suscripcion.
Vovi a suscribirme y en el campo de ingreso del codigo solo ingrese una letra y nuevamente el formulario se envio como si ubiese funcionado.

Lo agrego como dato, no se si solo me pase a mi o puede haber algun error en el cogido.

Saludos
  #8 (permalink)  
Antiguo 04/08/2006, 13:02
 
Fecha de Ingreso: agosto-2003
Ubicación: Málaga, España
Mensajes: 419
Antigüedad: 16 años, 6 meses
Puntos: 1
Cierto, está hecho así a drede...
pero el registro no se produjo. Creo que es mejor hacer creer 'que todo va bien' que 'poner a prueba al que intenta hacer un mal uso del sitio'

:)
  #9 (permalink)  
Antiguo 28/01/2008, 07:22
 
Fecha de Ingreso: abril-2003
Ubicación: Córdoba
Mensajes: 160
Antigüedad: 16 años, 10 meses
Puntos: 0
Re: Sistema anti-robots

yo hago OTRO APUNTE:

Al condicional if le agregaria que tambien se cumpla la condición de que la varible de sesion "mipass" no este vacia. Esto por que el robots no va a mandar el codigo de seguridad ni tampoco la session, por ende las dos estan vacias, por ende las dos son iguales, por ende el formulario se envia. quedaría asi:

if (($_SESSION['mipass'] != $_POST['pass']) || (empty($_SESSION['mipass']))) //error no se envia

nota: puede que algunos robots si envien la session, otros no.

saludos.
__________________
-----------------
_
__|_|__
º(-_-)º
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:39.