Foros del Web » Programando para Internet » PHP »

Prevenir spam

Estas en el tema de Prevenir spam en el foro de PHP en Foros del Web. Tengo un formulario para mandar mails. El tema es que me gustaría saber si hay algún método de limitar los envios para que no se ...
  #1 (permalink)  
Antiguo 22/07/2011, 11:54
 
Fecha de Ingreso: mayo-2010
Mensajes: 128
Antigüedad: 13 años, 10 meses
Puntos: 13
Prevenir spam

Tengo un formulario para mandar mails. El tema es que me gustaría saber si hay algún método de limitar los envios para que no se utilice con malos fines. Hice un captcha muy sencillo, pero creo que es insuficiente. Sería algo así como las busquedas en algunos foros, que deshabilitan por unos segundos o minutos la busqueda al usuario si eeste empieza a ser busquedas masivas (supongo que para no saturar el servidor).
Se me ocurre guardar la IP del usuario que envia un mail y agregar un contador a esa IP, y deshabilitarle los envios por un tiempo determinado si, por ejemplo, realiza mas de 20 envios en una hora ¿sería factible de hacer o se os ocurre un método mejor?

Otra cosa, utilizao la funcion mail() para los envios. Supongo que sería necesario tener un servidor de correo instalado, ¿no?
  #2 (permalink)  
Antiguo 22/07/2011, 12:03
Avatar de skiper0125  
Fecha de Ingreso: octubre-2010
Ubicación: $this->Mexico('Toluca');
Mensajes: 1.127
Antigüedad: 13 años, 6 meses
Puntos: 511
Respuesta: Prevenir spam

checa esto

Sistema anti spam

Espero y te sirva.

Saludos
__________________
Recuerda que estamos aquí para orientarte, y no para hacer tu trabajo.
Si mi aporte fue de ayuda, recuerda que agradecer no cuesta nada +1

Skiper0125
  #3 (permalink)  
Antiguo 22/07/2011, 14:02
 
Fecha de Ingreso: mayo-2010
Mensajes: 128
Antigüedad: 13 años, 10 meses
Puntos: 13
Respuesta: Prevenir spam

La web la estoy haciendo en PHP normal. No se mucho de PHPOO (todavía) pero le echado un vistazo y parece interesante y bien explicado. El tema es que lo que buscaba no era spam por "palabras" sino más bien por "número de envios". Es decir, una cantidad considerable muchos envios en poco tiempo daría lugar a deshabilitar el servicio de envios por un tiempo determinado. Eso es lo que busco. De todas formas el aporte también es interesante.
  #4 (permalink)  
Antiguo 22/07/2011, 16:26
Avatar de perryjr  
Fecha de Ingreso: julio-2010
Ubicación: Granada, Spain, Spain
Mensajes: 190
Antigüedad: 13 años, 8 meses
Puntos: 27
Respuesta: Prevenir spam

¿Quién quiere gastar tiempo en hacer captchas cuando en minutos puedes configurar tu propio captcha ofrecido por Google (me dirás que hay más seguro que eso)?:

http://recaptcha.com
__________________
I (L) Google
  #5 (permalink)  
Antiguo 23/07/2011, 03:12
 
Fecha de Ingreso: mayo-2010
Mensajes: 128
Antigüedad: 13 años, 10 meses
Puntos: 13
Respuesta: Prevenir spam

Pero lo que quiero no es un captcha, es otra cosa.
  #6 (permalink)  
Antiguo 23/07/2011, 12:34
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Prevenir spam

Puedes guardar la ip del usuario y una marca de tiempo, de forma que cada petición de envío comprueba la ip, le resta a la marca de tiempo actual, la guardada en la base de datos, y si es inferior a 180 segundos (20 envíos a la hora) le muestras un mensaje de que no puede enviarlo todavía o cualquier otro evento que controle la situación.

A esta opción le puedes poner tantas comprobaciones y reglas como quieras, configuración de tiempo mínimo de espera, comprobación de cookies, de ip, de session, de user_agent o todas a la vez...

Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #7 (permalink)  
Antiguo 26/07/2011, 16:25
 
Fecha de Ingreso: mayo-2010
Mensajes: 128
Antigüedad: 13 años, 10 meses
Puntos: 13
Respuesta: Prevenir spam

Cita:
Iniciado por Uncontroled_Duck Ver Mensaje
Puedes guardar la ip del usuario y una marca de tiempo, de forma que cada petición de envío comprueba la ip, le resta a la marca de tiempo actual, la guardada en la base de datos, y si es inferior a 180 segundos (20 envíos a la hora) le muestras un mensaje de que no puede enviarlo todavía o cualquier otro evento que controle la situación.

A esta opción le puedes poner tantas comprobaciones y reglas como quieras, configuración de tiempo mínimo de espera, comprobación de cookies, de ip, de session, de user_agent o todas a la vez...

Saludos,
Gracias, la verdad es que estoy probando a hacerlo como sugieres. Insertando los datos en tablas y comparando fechas y horas con numero de envios.Tengo dos tablas relacionadas (una donde inserto los datos cuando el usuario envia el formulario y otra donde inserto a los que están baneados, y relaciono las tablas por la ip con una clave foranea). Lo que pasa es que al crear más reglas me surge la necesidad de otra tablas y no se si será mejor utilizar también sesiones, y así aligero el consumo, porque quizas sería demasiado tantos inserts y tantos selects. En principio supongo que es mejor hacerlo todo mediante base de datos (comparando los datos del usuario con las tablas y baneando en función de numero de envios en un intervalo de tiempo) porque está todo mucho más controlado, ya que las sesiones se pierden al cerrar el navegador, aunque no creo que un spamer o alguien con ganas de joder se tome tantas molestias si quiere enviar emails masivos ¿no?

Etiquetas: prevenir, spam, formulario, usuarios
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 22:17.