Respuesta para la pregunta 2:
Primero aclaremos la terminología.
ID de sesión a menudo se utilizan para identificar a un usuario que ha iniciado sesión en un sitio web, pueden ser utilizados por un atacante para secuestrar la sesión y obtener privilegios potenciales. Un ID de sesión es a menudo una cadena larga, generada aleatoriamente para disminuir la probabilidad de obtener una válida por medio de una búsqueda de fuerza bruta.
ID de sesión de ejemplo en GET: SESSIONID=AIsdlasdklMVgyfrfksoskeikskZPF63erf
Sesión [clave, valor] : el servidor suele identificar al usuario mediante el ID de sesión enviado a través de una cookie o mediante los parámetros GET / POST. Por ejemplo, tomemos un caso donde los datos de sesión en el servidor se almacenan en archivos como sess_AIsdlasdklMVgyfrfksoskeikskZPF63erf.session
.
Este archivo contiene datos almacenados en pares [clave, valor] para ese id de sesión.
Y en el lado del servidor, la validación de la página de bienvenida puede ser como la de abajo
session_id( '$_GET['SESSIONID'] ); //Sets session id to the value received via GET parameter i..e session_id('AIsdlasdklMVgyfrfksoskeikskZPF63erf')
$username=$_SESSION['username'] //sets $username to Alice
echo "Welcome".$username; //Prints "Welcome Alice"
Aquí username
es una clave y Alice
es el valor correspondiente para esa clave en la variable de sesión.
Respuesta para la pregunta 1:
Sí, es peligroso si el ID de sesión está en la URL.
Además, es similar tener su nombre de usuario o contraseña en la URL a través de GET.
A pesar de que la sesión solo es válida por un corto período de tiempo (desde el inicio de sesión hasta el cierre de sesión / caducidad de la sesión), se puede usar incorrectamente si el atacante puede obtener el sessionid mientras sea válido.
Una vez que obtiene el ID de sesión, puede enviar las solicitudes falsificadas en nombre de los usuarios.
En el ejemplo anterior, si el atacante obtiene el ID de sesión de Alicia y envía las solicitudes con él, también recibirá el mensaje "Welcome Alice"
.