¿Cómo podría un atacante leer el contenido de las variables de la sesión php?

3

En mi código PHP, estoy generando un par de llaves RSA, enviando la clave pública al visitante y almacenando la clave privada en una variable de sesión. ¿Es posible que un atacante pueda leer el contenido de la variable de sesión?

Sé que alguien puede hacerse cargo de una sesión secuestrándola, pero no he podido averiguar si es posible acceder a las variables de esa sesión.

Gracias de antemano.

    
pregunta Pascal Sommer 06.03.2016 - 17:58
fuente

1 respuesta

5

No. En general, los datos de la sesión solo se almacenan en el lado del servidor y no deben ser legibles por un atacante.

Sin embargo, las configuraciones incorrectas o las vulnerabilidades en su código pueden llevar a la divulgación del contenido de la sesión. Sin embargo, leer el contenido de la sesión probablemente no sea el problema más grave en estos casos.

Leer datos de sesión desde un archivo

Los datos de la sesión se almacenan en el sistema de archivos del servidor (la ubicación está determinada por session.save_path ). Así que cualquiera que pueda leer archivos del directorio de sesión puede leer el contenido de la sesión. Esto puede suceder si:

  • tiene una vulnerabilidad de directorio que permite la lectura de archivos.
  • en hosts compartidos mal configurados, el directorio temporal que almacena las sesiones puede ser accesible para otros.
  • mal configuró mal su servidor, y session.save_path está públicamente accesible
  • ...

Leer datos de sesión desde $ _SESSION

Si un atacante puede leer variables, también puede leer su variable global $ _SESSION.

Esto ocurrirá principalmente cuando tenga una vulnerabilidad de ejecución de código, por lo que tendrá que preocuparse por otras cosas.

Pero uno podría imaginar un código que permita leer las variables, un ejemplo simple puede ser print_r($$_GET['x']); .

    
respondido por el tim 06.03.2016 - 18:41
fuente

Lea otras preguntas en las etiquetas