Comunidad de diseño web y desarrollo en internet online

Validación segura en JavaScript

Citar            
MensajeEscrito el 09 Abr 2008 04:04 pm
Tengo en mi página un sistema para validar un forulario:

Código :

<form method="post" name="comentario" onsubmit="return valida_comentario();" id="comentario" action="" >


De forma que valida_comentario() es una función que retorna false si no se supera la validación y el formulario no se envía, y true si se supera y el formulario se envía.

Lo que pasa es que más de una vez algunos spammers se han saltado la validación simplemente desactivando JavaScript de sus navegadores; yo mismo he hecho la prueba.

¿Hay alguna manera de que, si JavaScript está deshabilitado, no se envíe el formulario? Por ejemplo, haciendo que sea otra función la que lo envíe, o alguna otra solución..

Si no me responden, me veré obligado a hacer esto en PHP, y todo será menos dinámico :(

Por Juanlu_001

Claber

690 de clabLevel

6 tutoriales

 

firefox
Citar            
MensajeEscrito el 09 Abr 2008 05:14 pm
Cómo que "será todo menos dinámico"?
No entiendo...

En cualquier caso... (desde mi modesto conocimiento de Javascript) te respondo ya.
Hazlo por PHP.
Cualquier cosa hecha de lado del cliente, es todo, menos segura (lo cual no quiere decir, que sea seguro, hacerlo desde el servidor... pero al menos, sí "más seguro")

Quizá podrías hacer que se enviase mediante el método "send()" del formulario:
document.forms[$numero_del_form].send();
Así, si está desactivado el javascript, no se enviará el formulario, pero... bien pueden inyectar ellos otro botón "submit", y saltarse tu "truco"
En fin... que siempre habrá maneras.
Hazlo en PHP... y será más "seguro"

(Si quieres una muestra divertida de lo que se puede hacer, incluso desde la URL (si no lo sabías ya)... prueba esto en tu página... o en esta... o dnd quieras. Haz esto:
- Entra en una página.
- Pon el cursor sobre la barra de navegación del navegador, y borra la URL.
- Pon esto: javascript:document.body.innerHTML+='<input type="submit" value="ENVIAME" />';
(tal cual)
- Pulsa "intro"
- Ahora, verás como al pie de la página, ha aparecido "mágicamente" un botón "enviar".
Bien colocado, ese "submit" podría saltarse tu verificación desde javascript sin demasiado problema.)

Si no me equivoco, a esto último, se le podría considerar como la base (base, muy básica) del XSS (Cross_Site_Scripting), forma de atacar diversas páginas WEB, inyectando código HTML u otros, gracias a las diversas fallas de la verificación de código que se puede introducir.

Suerte...

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 09 Abr 2008 05:37 pm
La validación por javascript da la ventaja de que sus resultados son "instantáneos" y el usuario puede ver más rápido en que se equivoco. Pero yo siempre he creído que lo mejor es gastar un poco más de tu tiempo en una validación doble, tanto por javascript como por php al procesar el formulario.

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 09 Abr 2008 06:10 pm

Odin escribió:

[...] tanto por javascript como por php al procesar el formulario.
Es decir:
- Informar en tiempo real sobre cómo rellenar el formulario.
- Validar los datos enviados.

Esa sí parece la manera ideal.

Por El Oso Amoroso

Claber

1780 de clabLevel

6 tutoriales

 

Madrid, España, Europa, Eurasia, La Tierra, Sist.Solar, Vía Láctea, UNIVERSO

firefox
Citar            
MensajeEscrito el 09 Abr 2008 07:58 pm
A eso me refería rizome; con JavaScript podías ver los resultados de la validación instantáneamente sin tener que recargar la página de nuevo. Lo del XSS ya lo conocía: cuando comencé a administrar mi sitio con bases de datos me informé exhaustivamente sobre el tema, ya que no tengo nada del tipo WordPress ni nada parecido, lo he hecho todo yo, y pretendía que fuera lo más seguro posible.

Lo de la validación doble me parece una idea excelente: ciertamente no se me había ocurrido. Muchas gracias a los dos :-)

Por Juanlu_001

Claber

690 de clabLevel

6 tutoriales

 

firefox
Citar            
MensajeEscrito el 09 Abr 2008 08:12 pm
De nada ;)

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.