¿Pasar el ID de sesión como parámetro url es realmente inseguro?
Si bien no es inherentemente inseguro, puede ser un problema a menos que el código esté muy bien diseñado.
Digamos que visito mi foro favorito. Me registra y agrega mi ID de sesión a la URL en cada solicitud. Encuentro un tema particularmente interesante, y copio & pega la URL en un mensaje instantáneo para mi amigo.
A menos que la aplicación haya tomado medidas para asegurarse de que haya alguna forma de validación en el ID de sesión, el amigo que hizo clic en ese enlace puede heredar mi sesión, y luego Ser capaz de hacer cualquier cosa que yo pueda hacer, como yo.
Al almacenar los identificadores de sesión en las cookies, elimina por completo el problema de intercambio de enlaces.
Hay una variación en este tema llamada fijación de sesión , que implica un intercambio intencional de un identificador de sesión para fines maliciosos. El artículo de Wikipedia vinculado profundiza sobre cómo funciona este ataque y en qué se diferencia del intercambio involuntario del identificador de sesión.
¿Por qué las cookies son más seguras?
Las cookies pueden ser más seguras aquí, porque no son algo que los usuarios normales puedan copiar & pegar, o incluso ver y modificar. Son un valor predeterminado mucho más seguro.
¿Qué posibilidades tiene un atacante para ambas opciones?
Ninguno de estos métodos está a salvo de los ataques del hombre en el medio sobre la comunicación sin cifrar. Los complementos del navegador, el software espía y otros desagradables del lado del cliente también pueden espiar ambos métodos para almacenar identificadores de sesión.
En ambos casos, la validación del lado del servidor de que el cliente que dice poseer un ID de sesión es la mejor práctica. De qué se compone esta validación está en debate. Tenga en cuenta que los usuarios detrás de los proxies corporativos pueden saltar entre direcciones IP entre solicitudes, por lo que el bloqueo de una sesión a una dirección IP puede alienar accidentalmente a las personas. El artículo de fijación de sesión menciona algunas otras alternativas útiles.