Ver Mensaje Individual
  #29 (permalink)  
Antiguo 28/05/2002, 06:43
Avatar de Torus
Torus
 
Fecha de Ingreso: enero-2002
Ubicación: Tú buscame y me encontraras
Mensajes: 413
Antigüedad: 23 años, 2 meses
Puntos: 0
Re: ATENCION Problema de seguridad en ASP

Nochero no veo normal la bronca que te traes con migo, Tu sabias el problema bien, no lo posteaste, vale, y que...
Yo sí.
Tu sabes mucho de esto (no lo dudo) yo se mucho menos que tu (fijo) ¿y que?.
Yo lo poquísimo que se me gusta compartirlo y aunque acudo al foro por ayuda, siempre trato de ayudar si puedo.
Por otra parte tienes razón me gusta postear, parece ser que té molesta (lo siento) pero voy a seguir haciéndolo y a lo mejor, quizá en algún momento te pueda echar una mano.
No se puede ser siempre la novia en la boda ni el muerto en el funeral

Para terminar con el problema daré la solución, (por supuesto no daré la forma de comprobarlo).
Sólo hay que modificar la manera en que se recuperan los datos de usuario y clave en la página ASP. Por ejemplo, de la siguiente manera:

str_usuario = Replace(Request.Form("usuario"),"'& quot;,"")
str_clave = Replace(Request.Form("clave","'&quo t;,"")

Observar que se ha añadido la función Replace de VBScript. Esta función reemplazará cada comilla simple que pueda llegar a ingresar el usuario por una cadena vacía (en pocas palabras, se eliminan las comillas simples). Así, se evitará que un usuario pueda interceptar la consulta SQL y agregar código propio. Notar que quedan prohibidas las comillas simples en los valores de usuario y clave.
Para los usuarios de UltraDev solo hay buscar la siguiente línea de código

MM_rsUser.Source = MM_rsUser.Source y " de login_table DONDE username_field = '" y MM_valUsername y "' Y password_field = '" y "password_textbox " de CStr(Request.Form()) y "'"

Y remplazarla por esta otra:

MM_rsUser.Source = MM_rsUser.Source y " de login_table DONDE username_field = '" y Replace(MM_valUsername,"'","''&quot ;) y "' Y password_field = '" y Replace(Request.Form(" password_textbox "),"'","''") y "'"

Bueno y con esto doy por finalizado el tema.
Bye.





Hay tanto que aprender y tan poco tiempo