Foros del Web » Programando para Internet » ASP Clásico »

URGENTE .. Validar usuario y contraseña

Estas en el tema de URGENTE .. Validar usuario y contraseña en el foro de ASP Clásico en Foros del Web. Buenas, tengo este codigo para validar usuario y contraséña (copiado, claro): <html> <head> <title>Untitled Document</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="#FFFFFF" text="#000000"> <% Dim ...
  #1 (permalink)  
Antiguo 21/07/2003, 06:07
 
Fecha de Ingreso: julio-2003
Mensajes: 6
Antigüedad: 20 años, 8 meses
Puntos: 0
URGENTE .. Validar usuario y contraseña

Buenas, tengo este codigo para validar usuario y contraséña (copiado, claro):

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<%
Dim usuario, password, Conn, RS
'Primero nos fijamos si ambos campos fueron completados.
'Si no se cumple, redireccionamos a usuarios.asp
If Request.Form("usuario") = "" OR Request.Form("password") = "" then
Response.Redirect "usuarios.asp"
Else
'Guardamos los datos del Form en variables y evitamos la comilla simple
usuario = Trim(Request.Form("usuario"))
password = Trim(Request.Form("password"))
usuario = Replace(usuario,"'","''")
password = Replace(password,"'","''")

'Conectamos a nuestra BD.
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "sigma"
'Seleccionamos de la tabla solo los registros que concuerden con el usuario del Form.
sql = "SELECT * FROM usuarios WHERE Planta = '"& usuario &"'"
Set RS = Server.CreateObject ("ADODB.RecordSet")
RS.Open sql, Conn

'Si el valor EOF (fin de la tabla elegida) es verdadero, no existe el usuario.
If (RS.EOF = true) then
Response.Write "Ese usuario no existe"
ElseIf RS.Fields("contraseña") = password then 'Si el campo de la tabla es igual a nuestra variable, estas logueado.
Response.Write "Te logueaste con exito... Bienvenido a <B>"& usuario &"</B>"

Else 'Otra cosa, seria cuando el password no es la que seleccionamos.
Response.Write "Esa contraseña no concuerda con el usuario ingresado"
End If

'Limpiamos y cerramos.
RS.Close
Conn.Close
Set RS = Nothing
Set Conn = Nothing
End If
%>
</body>
</html>

lo que quiero y no me sale por el puto response.redirect, es que una vez se haya verificado correctamente el usuario entre en la pagina principal de la aplicacion web y que ademas se pasen dos de los parametros de la consulta del codigo.
  #2 (permalink)  
Antiguo 21/07/2003, 10:05
Avatar de pablinweb  
Fecha de Ingreso: julio-2003
Mensajes: 283
Antigüedad: 20 años, 8 meses
Puntos: 0
si queres pasar parametros del usuario que vas a usar en varias paginas te conviene crear varables de sesion

session("Usuario") = RS("Usuario")

y despues en otra pagina o en la misma

response.write(session("Usuario")
o
UsuarioActual = session("Usuario")

si lo que queres es usar el redirect

If (RS.EOF = true) then
Response.redirect ("error.asp")
ElseIf RS.Fields("contraseña") = password then 'Si el campo de la tabla es igual a nuestra variable, estas logueado.
Response.reidrect("Index.asp?user="& usuario)
end if

y lo levantas de la pagina index.asp asi
Usuario = request.querystgring("user")

Consulta: Estas seguro que esta bien el string de coneccion?

Saludos
  #3 (permalink)  
Antiguo 22/07/2003, 03:17
 
Fecha de Ingreso: julio-2003
Ubicación: San Esteban de Gormaz (Soria)
Mensajes: 1
Antigüedad: 20 años, 8 meses
Puntos: 0
Hola. He leido esto, y lo de redireccionar, creo que ya te lo han contestado.
Solo queria hacer una sugerencia. ¿por que en la consulta no verificas a la vez que coincidan el usuario y el password (where usuario=nombre AND contraseña = password, por ejemplo)? Es una forma de ahorrarte comprobaciones. Solo compruebas una vez:
- si Rs.EOF --> pagina de error
- sino --> a la pagina de acceso como usuario aceptado.

Conforme lo tienes tu, primero se comprueba que el usuario existe. Y si el usuario existe, compuebas que la contraseña coincide para ese usuario. De este modo es mas facil de "crackear" porque primero tienes que encontrar el usuario y despues de que tienes un usuario valido buscas su contraseña. De la manera que yo te digo tienen que conincidir a la vez el usuario y la contraseña, y es mas dificil. No le das pistas de donde ha fallado en la operacion de login.

No se si me he explicado. Espero te sirva de ayuda o simplemente como consejo. De todos modos ahi esta para el que lo quiera.
Un saludo, Carlos
  #4 (permalink)  
Antiguo 25/07/2003, 09:45
 
Fecha de Ingreso: diciembre-2002
Ubicación: argentina... de ahí seran veinte cuadras
Mensajes: 382
Antigüedad: 21 años, 3 meses
Puntos: 0
pregunto: ¿que nivel de seguridad ún login con este código?, cuales son las posibilidades de ser hackeado y demas?


saludos!!
__________________
Juan Pablo
  #5 (permalink)  
Antiguo 25/07/2003, 09:49
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 22 años, 1 mes
Puntos: 1
La seguridad en los sistemas de autentificacion depende de la combinacion de login y password, si son sencillos pueden ser atacados mediante combinaciones de diccionario.

Tambien recuerda que si alguien se descarga la base de datos tendra todos los login en sus manos.

Personalmente hago un contador que si se intenta hacer login mas de 3 veces de forma incorrecta se cree una variable de sesion que no permita hacer mas login y te redirige a yahoo.com, por ejemplo.

Otra opcion es banear una IP desde la que se ataca durante una hora , dos, etc.
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
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 07:57.