Seguridad formulario de contacto

Rodrigo Ruiz Fuentes raruiz en alumnos.duoc.cl
Vie Mar 10 08:29:02 CLST 2006


El vie, 10-03-2006 a las 01:25 -0300, Rodrigo Fuentealba escribió:
> Boris Cruchet wrote:
> > Una solucion sencilla que he encontrado
> >
> > es la utilizacion de inagemes con texto, que el usuario debe escribir en
> > un campo del formulario ...
> >
> > desconosco si existen sistemas capaces de leer estas imagenes y realizar
> > reconocimiento de caracteres ... pero creo que no
> >
> > es una solucion sencilla y creo que suficientemente buena
> >
> > Saludos
> > B
> >   
> >> Buenos tardes gente,
> >> la situación es la siguiente, existe un sitio don hay un formulario de
> >> contacto, el cual al llenar los datos envía un correo a cierta casilla
> >> con toda la información ingresada en el formulario. Todo funciona bien,
> >> hasta que un buen día, esto comenzó a colapsar. La casilla de correo a
> >> la cual llegan los datos, se comenzó a llenar de correo basura, cuando
> >> digo basura no me refiero a SPAM, Virus o algo por el estilo, sino que
> >> basura, correos ilegibles enviados desde apache en servidor.
> >> Cabe destacar que el servidor de correo es controlado por nosotros, pero
> >> donde está la aplicación (Apache+PHP), es en nuestro ISP.
> >> Como medida de precaución, me dediqué a revisar el código, y
> >> evidentemente tenía falencias, no tenía una validación de envío alguno,
> >> por lo tanto recibía cualquier dato y lo enviaba.
> >> Le agregué una validación del tipo if($_REQUEST['boton']) {} para
> >> validar que efectivamente se estaba enviando el correo desde el
> >> formulario y no desde alguna otra parte, con ello la recepción de correo
> >> basura descendió desde 200 por hora a 4 por hora, sin embargo aún sigue
> >> llegando correo de ese tipo, sin la frecuencia anterior, pero llegan.
> >> La pregunta es la siguiente, que método de validación puedo aplicar para
> >> comprobar que efectivamente los datos son enviados desde la página y no
> >> desde otra parte, aparte del REQUEST y de SESSION.
> >> Muchas gracias.
> >>     
> No uses $_REQUEST, usa $_POST... es bastante probable que cuando usas 
> $_REQUEST te pasen el mail por método $_GET, algo como
> http://www.tuserver.com/contacto.php?to=tu@server.com&from=servidor@apache&content=28396527643592765432354 
> (por ponerle un ejemplo).
Acabo de aprender eso, hasta hoy pensé que REQUEST servía para validar
cuando se presionaba algo del tipo submit, button, o algo por el estilo,
sin embargo con lo que me comentas, busco en google, y me encuentro con
que REQUEST 'lee' cualquier cosa POST y/o GET. Para los datos del
formulario, nombre, mail, empresa, etc. siempre he utilizado POST.
> Ya con eso evitas programas muleros que hacen uso de esta falla.
> 
> Lo otro, como dice Boris, es utilizar imágenes. La técnica de imágenes 
> generadas con GD se llama CAPTCHA. En pear.php.net hay una 
> implementación de esto, bastante útil, la usamos bastante en los 
> sistemas de mi empresa y funciona bien. Ahora, aquí en este PC no tengo 
> ningún ejemplo como para poder enviarte.
Bueno, creo que eso sería la mejor solución, PERO, como señalé antes,
apache+PHP no están acá, sino que en los servidores de nuestro ISP, y
hace unos meses atrás los llamé para saber si instalarían PHP con
soporte GD y me dijeron que no, pues hasta esa fecha no estaba
soportado, y hoy tampoco.
Lo bueno, entre comillas, es que desde la próxima semana el sitio estará
administrado desde acá, y podremos implementar esta solución.
> 
> Sobre sistemas de reconocimiento de texto en imágenes, yo he visto un 
> solo sistema en un laboratorio en Alemania, pero trabaja solamente bajo 
> imágenes XPM pues cuenta patrones con un editor de textos y sólo es 
> capaz de reconocer la letra Arial, y lo usaban para escaneo de textos 
> para la biblioteca de proyectos de una empresa de automóviles... 
> Funcionaba como OCR pero en vez del escáner usaba la pantalla... 
> entrete, no?
> 
> ( A todos los de la lista, a alguien le interesaría construir uno de 
> estos sistemas? nos haríamos la América... :-X )
> >> Rodrigo Ruiz Fuentes <raruiz en alumnos.duoc.cl
> Saludos
> 
> Rodrigo Fuentealba Cartes
-- 
Rodrigo Ruiz Fuentes <raruiz en alumnos.duoc.cl>



Más información sobre la lista de distribución PHP