Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: nØFi# en 25 Junio 2008, 11:36 am



Título: Evitar DoS en mail()
Publicado por: nØFi# en 25 Junio 2008, 11:36 am
Buenas,
Estoy haciendo un formulario para que los usuarios puedan enviar mails a una cuenta de correo en concreto con la función mail(). Si dejo la función tal cual, cualquier usuario malintencionado podria enviar mails sin limite y colapsar el servidor o cuenta de correo.

Para evitar esto he pensado en hacer una pausa (con la funcion pause()) de 2 o 3 segundos antes de ejecutar el mail(). Asi evito que se hagan muchas peticiones en poco tiempo.

Lo veis correcto esto? Alguna alternativa mejor?


Título: Re: Evitar DoS en mail()
Publicado por: Hans el Topo en 25 Junio 2008, 11:55 am
lo ideal sería crear un script php basado en cookies o sesiones o en tablas mysql de control que eviten que una misma ip pueda enviar más de x mails en x tiempo


Título: Re: Evitar DoS en mail()
Publicado por: nØFi# en 25 Junio 2008, 12:03 pm
Si también lo he pensado esto, pero si un usuario coge una lista de proxys y va haciendo peticiones con diferentes ips me quedo igual.
No creo que alguien se interese en hacer esto, pero mejor prevenir  :)

El problema que le veo al pause, es que cuando se conecten varios usuarios a la vez y quieran enviar mail, se van a tener que esperar un rato.. Por eso nose si hay alguna alternativa mejor.


Gracias por contestar ;)


Título: Re: Evitar DoS en mail()
Publicado por: #!drvy en 25 Junio 2008, 12:30 pm
Buenas, que tal con codigo captcha ? eso mismo estoy utilizando para un script en el que estoy ahora.... asi antes de enviar un email el usuario debe introducir el codigo y en caso de que no sea valido le echa xD..



Saludos


Título: Re: Evitar DoS en mail()
Publicado por: дٳŦ٭ en 25 Junio 2008, 18:50 pm
Tambien puedes usar sleep(segundos).  ;) Yo usaría una tabla para las ips y un captcha.