esto está cruzando mi mente y me pregunto si es posible, ¿qué tan seguro puede ser almacenar información en la variable $ _SESSION de PHP?
Respuesta
El almacenamiento de variables en la variable $ _SESSION tiene dos posibilidades para "inseguridad".
- La primera como se describe en la otra respuesta se llama "fijación de sesión". La idea aquí es que dado que el ID de la sesión se almacena en una cookie, la ID puede cambiarse a la de otro usuario. Esto no es un problema si un usuario obtiene una ID nueva en cada sesión por lo que es muy difícil encontrar una ID de una sesión que esté funcionando actualmente y secuestrarla.
- El segundo depende completamente de su código. Si su código pierde los valores de la información secreta que almacena en $ _SESSION, entonces es inseguro. Si su código le permite al usuario controlar los valores de esa información, es inseguro. De lo contrario, si hay algo en la variable $ _SESSION y su código nunca permite que el usuario lo vea o escriba, entonces es seguro.
El $_SESSION
se almacena por completo en el servidor, por lo que el usuario no puede modificarlo. Sin embargo, es posible para los exploits de secuestro de sesión donde el usuario se conecta a la sesión de otro usuario.
Los datos de sesión se almacenan en el servidor.
Donde menos seguro $_COOKIES
están en la computadora del cliente, el $_SESSION
se almacena en el servidor. Su ubicación está determinada por el session.save_path
de php.ini. Sin embargo, todavía hay problemas de seguridad como session fixation
PHP Session funciona almacenando una cookie PHPSESSID
en la computadora del usuario final que actúa como una clave de acceso para la información de sesión basada en el servidor. Ese valor de cookie es una cadena hash (cuya seguridad depende de la configuración de PHP) que se utiliza para vincular el navegador en particular con los valores de sesión específicos que establezca.
Esa cadena se parece a b420803490a9f0fe8d6a80657fec3160
. Entonces, el usuario final podría alterar esa cadena, pero luego su sesión se volverá inválida, ya que casi seguro no coincidirá con una almacenada por PHP, y no tendrán acceso a los datos.
Existe el riesgo, como han mencionado otros, de que alguien PHPSESSID
quede expuesto, y la gente lo use para secuestrar la sesión de otra persona.
- 1. cómo obtener valor de $ _SESSION en cakephp
- 2. PHP ¿Puede un cliente establecer alguna vez las variables $ _SESSION?
- 3. $ _SESSION lista en PHP
- 4. ¿Puede un usuario modificar una sesión de PHP?
- 5. Almacenar datos de sesión usando MemoryStore en el Nodo, similar a $ _SESSION [ 'datos'] = Valor en PHP
- 6. Configuración de PHP $ _SESSION ['var'] usando jQuery
- 7. PHP __PHP_Incomplete_Class Objeto con mis datos $ _SESSION
- 8. determinar si existe $ _SESSION superglobal en PHP
- 9. Almacenamiento de valores múltiples en una variable $ _SESSION con PHP
- 10. ¿Es posible que un usuario malintencionado edite $ _SESSION?
- 11. PHP $ _SESSION es del lado del servidor o local?
- 12. ¿Cómo alterar el valor booleano en SQL Server select query?
- 13. ¿Cómo borrar PHP $ _SESSION por apache?
- 14. Cómo ALTERAR el parámetro de valor de tabla
- 15. ¿Es posible modificar la variable $ _SESSION?
- 16. php almacenando el ID de usuario en la sesión?
- 17. $ _SESSION ['user_id'] es suficiente para verificar el inicio de sesión en PHP?
- 18. ¿Puedo almacenar una instancia de clase en un espacio $ _SESSION?
- 19. serialize() y $ _SESSION
- 20. PHP: $ _SESSION - ¿Cuáles son los pros y los contras de almacenamiento de datos utilizados temporalmente en la variable de $ _SESSION
- 21. ¿Cómo puedo establecer el valor de un cuadro de texto a través de PHP?
- 22. Undefined variable: $ _SESSION
- 23. Cómo usar jQuery AJAX $ .post para almacenar variables PHP $ _SESSION?
- 24. Variables de almacenamiento en caché en la variable $ _SESSION?
- 25. ¿Cómo serializar/guardar un elemento DOMElement en $ _SESSION?
- 26. alterar el resultado de la serialización xml
- 27. PHP PDO no puede obtener el valor del parámetro OUT
- 28. ¿Cómo se separa el sistema de sesión de codeigniter con PHP integrado en $ _SESSION?
- 29. ¿Puede CSS alterar el atributo SRC de un elemento de entrada?
- 30. cómo alterar el caso de una cadena en php? paSSw5ORD a PAssW5ord?
+1 Porque esta [es la única respuesta hasta el momento que] aborda las vulnerabilidades permitidas por la codificación insegura. –
¿Qué quiere decir con "Si su código pierde los valores" –
fuga sería algo así como 'Hola, $ _SESSION ['nombre de usuario'], su contraseña es $ _SESSION ['contraseña']'. Los datos de la sesión se guardan en el servidor, y a menos que el código expulse explícitamente una parte de él, el usuario remoto nunca podrá verlos. –