2009-06-05 11 views
5

¿Es posible hackear las variables de sesión de alguien y crear un nuevo usuario oculto?Hackeando variables de sesión en Asp.NET

¿Cuáles son las formas más comunes de evitar tales sorpresas?

¿Instalación del certificado SSL o ...?

Respuesta

13

Respuesta corta ... depende.

La sesión en ASP.NET se puede almacenar de varias formas (InProc/Servidor SQL/Servidor de estado) etc ... otra cosa a tener en cuenta es cómo se mantiene la sesión del cliente (valor de cadena de consulta, cookies, etc. .)

Como el cartel en esta respuesta sugiere

Can we hack a site that just stores the username as a session variable?

Una cosa que podría hacer cuando se autentica el usuario y almacenar su nombre en la sesión, sería almacenar también alguna otra información sobre ellos. p.ej. Su UserAgentString, su dirección IP y si una IP diferente o UserAgentString intentaron interactuar con la sesión, puede invalidarla.

+2

Una cosa: almacenar IP contra sesión es bueno, pero no infalible, el problema es que una forma común de hackeo de sesión es contra alguien dentro del mismo grupo IP (es decir, dentro de una empresa o AOL). Preocupaciones similares para UserAgent (¡solo con mucha más común!) – annakata

1

Todo es posible, pero por defecto es difícil.

En general, secuestrar una sesión robando la cookie de sesión y recreándola en otra máquina. Sin embargo, para hacer esto, el sitio web debe ser vulnerable a Cross Site Scripting (que puede mitigar con Server.HtmlEncode cuando hace eco de la entrada del usuario). Si termina vulnerable, la cookie de sesión de ASP.NET se marca como HTTP Only, lo que significa que, si un navegador lo admite, no se puede acceder desde los scripts del lado del cliente (aunque Safari ignora esta configuración).

Cuestiones relacionadas