CÓMO: Utilizar código ASP sencillo para proteger por contraseña sus páginas ASP

Seleccione idioma Seleccione idioma
Id. de artículo: 301464 - Ver los productos a los que se aplica este artículo
Este artículo se publicó anteriormente con el número E301464
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se explica la manera de escribir código simple para páginas Active Server (ASP) para restringir el acceso con una página de inicio de sesión. En este artículo, la explicación de los métodos es general. Para obtener más funciones o mayor seguridad, consulte la sección " Referencias situada al final de este artículo.

En este ejemplo, creará las dos siguientes páginas:
  • MiPágina.asp: esta página está protegida y no puede visitarse sin el nombre de usuario y la contraseña correctos.
  • InicioSesión.asp: Esta página proporciona un formulario en el que los usuarios insertan sus credenciales. A continuación, el formulario comprueba el nombre y la contraseña del usuario. Si el nombre y la contraseña son correctos, inserta una cookie en el cliente, que se convierte en la "clave" para obtener acceso a otras páginas ASP.

Crear la aplicación

Utilice el Bloc de notas para crear estas páginas ASP. Para abrir el Bloc de notas desde el menú Inicio de Windows, seleccione Programas, Accesorios y, a continuación, Bloc de notas. Guarde todos estos documentos en la carpeta Web raíz del servidor Web local (que generalmente es C:\InetPub\Wwwroot\). Si cambia la ubicación de los documentos, también debe modificar adecuadamente la secuencia de comandos de estos archivos.

InicioSesión.asp

  1. En el Bloc de notas, haga clic en Nuevo, en el menú Archivo.
  2. Resalte el código siguiente, haga clic con el botón secundario del mouse (ratón) en el mismo y, a continuación, haga clic en Copiar desde el menú contextual. En el Bloc de notas, haga clic en Pegar en el menú Edición para pegar el siguiente código en el Bloc de notas:
    <html>
    <head>
    <title>Formulario de inicio de sesión</title>
    <%
    Username="Administrator"
    Password="Admin"
    Validated = "OK"
    if Strcomp(Request.Form("User"),Username,1)=0 AND Request.Form("password") = Password then
    'Establezca la cookie de validación y redirija al usuario a la página original.
        Response.Cookies("ValidUser") = Validated
        'Compruebe de qué parte de la aplicación vienen los usuarios.
        If (Request.QueryString("from")<>"") then
    	Response.Redirect Request.QueryString("from")
        Else
    	'Si la primera página a la que tiene acceso el usuario es la página de inicio de sesión,
            'rediríjale a la página predeterminada.
              Response.Redirect "MiPágina.asp"
        End if    
    Else
    ' Muestre el mensaje de error únicamente si el usuario escribió algo.
        If Request.Form("User") <> "" then
            Response.Write "<h3>Error de autorización.</h3>" & "<br>" & _
            "Vuelva a intentarlo.<br>&#xa0;<br>"
        End if
    End if
    %>
    </head>
    <body bgcolor="#FFFFFF">
    <FORM ACTION=<%Response.Write "InicioSesión.asp?"&Request.QueryString%> method="post">
    <h3>Pagina de inicio de sesión para MiPágina.asp</h3>
    <p>	
    Nombre de usuario: 
    <INPUT TYPE="text" NAME="User" VALUE='' size="20"></INPUT>
    Contraseña: 
    <INPUT TYPE="password" NAME="password" VALUE='' size="20"></INPUT>
    <INPUT TYPE="submit" VALUE="Inicio de sesión"></INPUT>
    </FORM>
    </body>
    </html>
  3. Guarde esta página como InicioSesión.asp en la carpeta C:\InetPub\Wwwroot\.

MiPágina.asp

MIPágina.asp es la página que desea proteger. Puede utilizar cualquier página con la extensión .asp.
  1. En el Bloc de notas, haga clic en Nuevo, en el menú Archivo.
  2. Resalte el código siguiente, haga clic con el botón secundario del mouse (ratón) en el mismo y, a continuación, haga clic en Copiar desde el menú contextual. En el Bloc de notas, haga clic en Pegar en el menú Edición para pegar el siguiente código en el Bloc de notas:
    <%
    Validated = "OK"
    if Request.Cookies("ValidUser") <> Validated then
    'Cree la dirección URL para la página actual.
        dim s
        s = "http://" s = s & Request.ServerVariables("HTTP_HOST")
        s = s & Request.ServerVariables("URL")
        if Request.QueryString.Count > 0 THEN
    	s = s & "?" & Request.QueryString
        end if
        'Redirija a los usuarios no autorizados a la página de inicio de sesión.
        Response.Redirect "InicioSesión.asp?from=" &Server.URLEncode(s)
    End if
    %>
    <html>
    <head>
    <title>Mi página protegida</title>
    </head>
    <body>
    <p align="center">Esta información es confidencial<br>
    No puede consultarla a menos que<br>
    inicie sesión correctamente</p>
    </body>
    </html>
  3. Guarde esta página como MiPágina.asp en la carpeta C:\InetPub\Wwwroot\.

Probar la aplicación

  1. Abra el explorador Web. Si está utilizando Microsoft Internet Explorer, desde el menú Inicio de Windows, seleccione Programas y, a continuación, haga clic en Internet Explorer.
  2. Escriba la siguiente dirección en la barra de direcciones y, a continuación, presione la tecla ENTRAR:
    http://hostLocal/MiPágina.asp
    Observará que se le redirige a InicioSesión.asp.
  3. Escriba la información de nombre de usuario y la contraseña contenida en el código ASP (Nombre de usuario: Administrator, Contraseña: Admin) en el archivo InicioSesión.asp y, a continuación, haga clic en Inicio de Sesión. Esto le permite ver la página MiPágina.asp.
  4. Escriba una contraseña o un nombre de usuario incorrecto para confirmar que no puede iniciar sesión y, por lo tanto, visitar MiPágina.asp.

Otras consideraciones

  • Para proteger otras páginas ASP, agregue el siguiente código en la parte superior de la página ASP antes que ningún otro código :
    <%
    Validated = "OK"
    if Request.Cookies("ValidUser") <> Validated then
    'Cree la dirección URL para la página actual.
        dim s
        s = "http://"
        s = s & Request.ServerVariables("HTTP_HOST")
        s = s & Request.ServerVariables("URL")
        if Request.QueryString.Count > 0 THEN
    	s = s & "?" & Request.QueryString
        end if
        'Redirija a los usuarios no autorizados a la página de inicio de sesión.
        Response.Redirect "InicioSesión.asp?from=" &Server.URLEncode(s)
    End if
    %>
  • Para iniciar sesión y poder visitar la página protegida solicitada, debe dirigir los hipervínculos a la página actual, no a la página InicioSesión.asp. En este ejemplo, asegúrese de que el hipervínculo señala MiPágina.asp. Si no inició sesión, el código incluido en dicha página le redirige automáticamente a InicioSesión.asp.
  • Si desea que los visitantes de su sitio inicien sesión cada vez que entren en la página, puede guardar la cookie ValidUser en sus equipos de manera que esta información esté disponible la próxima vez que visiten la página. El código anterior provoca que la cookie caduque tan pronto finalice el tiempo de espera de la sesión o cuando cierre la ventana del explorador. Para establecer un período de caducidad de la cookie, cambie el siguiente código en InicioSesión.asp de
            Response.Cookies("ValidUser") = Validated
    a:
            Response.Cookies("ValidUser") = Validated
            Response.Cookies ("ValidUser").Expires = DATE + 1
    Para especificar el período de caducidad, cambie "1" por el número de días que desee. Por ejemplo, el siguiente código provoca que la cookie expire en el equipo pasado un año:
            Response.Cookies ("ValidUser").Expires = DATE + 365
    Si establece una fecha de caducidad, la cookie se guarda en el equipo del usuario final de manera que éste pueda omitir la página de inicio de sesión en el futuro. Sin embargo, si el usuario visita el sitio desde otro equipo, la cookie se guarda en ese equipo y otra persona podría leer y copiar potencialmente esta información.

Errores

  • Una página ASP de inicio de sesión resulta útil para muchas aplicaciones, pero no ofrece el nivel más alto de seguridad. Generalmente, NTFS es el nivel más alto de seguridad. NTFS requiere que los usuarios escriban un nombre y una contraseña que Microsoft Windows reconozca. La seguridad de NTFS puede utilizarse para establecer permisos en archivos y carpetas en el disco duro.

    Además, la seguridad de ASP funciona sobre la seguridad de Microsoft Internet Information Server (IIS). Si IIS no está configurado de manera segura y agrega funciones de seguridad de ASP, no impedirá que usuarios con experiencia obtengan acceso a su sitio.

    Para obtener más información acerca de IIS y la seguridad de ASP, consulte la sección " Referencias ".
  • El código anterior tiene en cuenta únicamente un conjunto de credenciales de usuario. El siguiente artículo de Microsoft Knowledge Base explica cómo utilizar una página de inicio de sesión de ASP en la que se guardan varios nombres de usuario en una base de datos:
    299987 CÓMO: Utilizar sesiones de base de datos y ASP para implementar la seguridad de ASP
  • Si establece una fecha de caducidad para la cookie, se guarda en el equipo utilizado para visitar su página. Si alguien visita su página desde un equipo público, como uno ubicado en una cafetería, la cookie quedará almacenada en dicho equipo por lo que otra persona podrá leer y copiar esta información. Si no establece una fecha de caducidad, la cookie no se guardará en el disco duro del equipo (sólo se almacena en la memoria) y se eliminará de la memoria del equipo tan pronto se cierre el explorador.

REFERENCIAS

Otros artículos de Microsoft Knowledge Base sobre procedimientos

299987 CÓMO: Utilizar sesiones de base de datos y ASP para implementar la seguridad de ASP
299970 CÓMO: Utilizar la seguridad de NTFS para proteger una página Web que se ejecuta en IIS 4.0 ó 5.0

Referencias principales acerca de la seguridad de Microsoft

Seguridad de Microsoft
http://www.microsoft.com/security/

Seguridad en el sitio Web de TechNet
http://www.microsoft.com/technet/Security/default.mspx
Si el anterior vínculo de TechNet falla, visite la página principal de TechNet en:
http://www.microsoft.com/technet/default.asp
En el panel izquierdo, seleccione Security y, a continuación, Web Site.

Referencias acerca de la seguridad general

White Paper: Implementing a Secure Site with ASP
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsecure/html/msdn_implement.asp
164882 Practical Recommendations for Securing Internet-Connected Windows NT Systems
282060 Resources for Securing Internet Information Services
271071 Minimum NTFS Permissions Required for IIS 5.0 to Work
174811 Authentication and Security White Paper for Internet Developers
229694 Cómo utilizar la herramienta de seguridad "What If" de IIS

Referencias especializadas acerca de la seguridad

239120 Create a Secure FTP Directory that Uses Password Authentication
216705 How to Set Permissions on a FrontPage Web on IIS
280383 IIS Security Recommendations When You Use a UNC Share and Username and Password Credentials
176378 HOWTO: SQL Server with Integrated Security, IIS on Same Machine
260985 XIMS: Minimum NTFS Permissions Required to Use CDONTS
257685 Proxy Server 2.0 Security Checklist
165340 Change Permissions Needed on Index Server System Files
235874 Windows NT File System (NTFS) Permissions Required for Proxy Server 2.0

Propiedades

Id. de artículo: 301464 - Última revisión: viernes, 11 de agosto de 2006 - Versión: 5.1
La información de este artículo se refiere a:
  • Microsoft Active Server Pages 3.0
Palabras clave: 
kbaspobj kbcodesnippet kbgrpdsasp kbhowto kbhowtomaster kbscript kbsecurity kbserver kbsysadmin kbvbscript kbwebserver KB301464
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com