01/12/2003, 11:58
|
| | | Fecha de Ingreso: noviembre-2003 Ubicación: Bizkaia
Mensajes: 1.315
Antigüedad: 21 años Puntos: 2 | |
Informe Accesos Buenos Y Malos ¡¡funciona!! Él código resultante final es el que indico debajo. (Si alguien puede mejorarlo, sugerencias, etc, adelante, por favor!)
Agradecimientos: Dazuaga, Jercer
A tener en cuenta: Crear una base de datos con las tablas y campos necesarios que aparecen en el código:
clientes.mdb
---->usuarios (tabla)
-------->usuario (campo)
-------->password (campo)
-------->nombre (campo)
---->TablaAccesos (tabla)
-------->ID_Usuario (campo)
-------->Fecha_Acceso (campo)
-------->IP (campo)
---->BadAccesos (tabla)
-------->Bad_usuario (campo)
-------->Bad_fecha (campo)
-------->Bad_clave (campo)
-------->Bad_IP (campo)
[CÓDIGO DEL ARCHIVO AL QUE LLAMA EL HTM QUE CONTIENE EL FORMULARIO]
<%if request.form("usuario")="" then%>
<%else
'eliminamos las posibles comillas de la entrada
'para evitar la introducción de sentencias SQL
usuario=replace(request.form("usuario"),"'","")
password=replace(request.form("password"),"'","")
Var_IP = Request.ServerVariables("REMOTE_HOST")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../datos/clientes.mdb"))
set rs = CreateObject("ADODB.Recordset")
sqltxt="Select * from usuarios where usuario='"&usuario&"' and password= '"&password&"'"
'response.write sqltxt
rs.Open sqltxt, conn
if not rs.eof then
' nos ha devuelto un registro, ahora miraremos si es valido
' con ello evitamos el ataque típico SQL
if rs("usuario")=usuario and rs("password")=password then
' si el usuario esta en la base de datos y la password coincide
session("autorizacion")=1
Insertar = "INSERT INTO TablaAccesos (ID_Usuario, Fecha_Acceso, IP) VALUES ('"&usuario &"', '"& Now() &"', '"&Var_IP&"')"
Conn.Execute(Insertar)
Response.write "<body>...<body>"
end if
else
Insertar = "INSERT INTO BadAccesos (Bad_usuario, Bad_fecha, Bad_clave, Bad_IP) VALUES ('"&usuario&"', '"& Now() &"', '"&password&"', '"&Var_IP&"')"
Conn.Execute(Insertar)
session("autorizacion")=-1
end if
rs.close
set rs=nothing
conn.close
set conn=nothing
if session("autorizacion")=-1 or session("autorizacion")="" then
' no hemos encontrado el registro
' eso indica que el usuario y/o la password son erroneos
response.redirect "acceso.htm"
end if
end if%>
Última edición por ludovico2000; 07/07/2005 a las 12:07 |