cookies - ASP clásico: ¿Cómo verificar si la cookie ASPSESSIONID*ha sido marcada como segura?
asp-classic iis-6 (3)
Intento marcar la cookie de identificación de la sesión ASP como HttpOnly, pero parece que no puedo encontrar una forma de saber si está funcionando. El entorno en el que intento esto es el siguiente: SO: Windows Server 2003 IIS: 6 ASP Versión: ASP 3 (ASP clásico)
Para marcar la cookie como http solo, seguí MS KB
De acuerdo con la sugerencia de nuestro arquitecto, para probar si esto funciona, un documento de JavaScript ..cookie no debería poder leer la cookie ASPSESSIONID *. Mi problema es que javascript: alert (document.cookie) aún se hace eco de la cookie ASPSESSIONID *, aunque parece estar encriptada (?)
También traté de hacerlo a través de Response.AddHeader "Set-Cookie" pero no puedo determinar qué valor dar para este encabezado para marcar todas las cookies O AL MENOS la cookie de ID de sesión ASP como HttpOnly. ¡¡¡Ayuda!!!
No creo que su arquitecto tenga razón con respecto al acceso a la cookie en javascript.
No hay ninguna razón para evitar que el javascript que se ejecuta en su página tenga acceso a la cookie más de lo que JavaScript acceda al resto de sus datos en el HTML.
El propósito de agregar el calificador seguro a una cookie es evitar que se envíe en una solicitud no segura.
Normalmente, las cookies establecidas cuando el cliente está conectado utilizando https
se enviarán cuando las solicitudes se realicen en el mismo servidor utilizando http
simple. Marcar una cookie con el calificador de seguridad cuando su conjunto indica al cliente que solo debe enviarse en solicitudes posteriores si esas solicitudes utilizan https
.
Por lo tanto, para probar su configuración obténgase una copia de Fiddler , con esa ejecución, presione el servidor sobre https y luego, en la misma sesión del navegador, acceda a la misma ubicación con solo http. Fiddler debería mostrar que la segunda solicitud va al servidor y no debería haber una cookie ASPSESSION.
Pareces confundido entre SECURE y HTTPONLY. Estos son diferentes. El artículo de MS KB al que se refiere es SEGURO.
Configurar una cookie SECURE detendrá IIS / Browser enviando la ID de la sesión ASP a través de HTTP.
Establecer una cookie HTTPONLY evitará que el script (javascript) acceda al valor en la mayoría de los navegadores.
Hay una muy BUENA razón para establecer HTTPONLY en una cookie sessionID. Ayuda a evitar el robo de la cookie sessionID de los usuarios, lo que podría provocar el secuestro de la sesión. Es por eso que los principales navegadores lo han implementado.
Acabo de enterarme de este problema debido a un "nuevo" elemento de cumplimiento de PCI. Es un poco torpe, pero parece funcionar:
<%
Dim AspSessionCookie
AspSessionCookie = Request.ServerVariables("HTTP_COOKIE")
If len(AspSessionCookie) > 0 Then
AspSessionCookie = "ASPSESSIONID" & Split(AspSessionCookie,"ASPSESSIONID")(1)
If InStr(1,AspSessionCookie,";") then
AspSessionCookie = Split(AspSessionCookie,";")(0)
End If
Response.AddHeader "Set-Cookie", AspSessionCookie & ";HttpOnly"
Else
Response.redirect(Request.ServerVariables("URL"))
End If
%>