Necesito hacer algunos cifrados en la zona privada de mi sitio web y quiero bcrypt
la contraseña del usuario.
¿Es seguro almacenar la contraseña en la sesión cuando el usuario inicia sesión, para poder usarla más tarde?
Necesito hacer algunos cifrados en la zona privada de mi sitio web y quiero bcrypt
la contraseña del usuario.
¿Es seguro almacenar la contraseña en la sesión cuando el usuario inicia sesión, para poder usarla más tarde?
No almacene la contraseña en las variables de sesión. En su lugar, use una clave sustituta.
Por ejemplo:
Cuando el usuario inicia sesión, haces lo siguiente:
Si un atacante obtiene acceso de lectura a los datos de sesión almacenados en su directorio /tmp
, podrían extraer claves sustitutas. Sin embargo, no podrán acceder a la contraseña del usuario. Si bien esto no protege los datos que está cifrando en el servidor, impide el acceso no autorizado a la cuenta del usuario y evita que el atacante aproveche los casos en que el usuario ha utilizado la misma contraseña en otro lugar.
Si desea utilizar PHP de forma segura, debe tener instalado el parche de PHP endurecido Suoshin . (Cualquier empresa de hosting con la que valga la pena tratar ya lo tendrá en sus servidores). Este parche incluye una funcionalidad que encripta los datos de la sesión automáticamente, lo que debería ser suficiente para protegerte de ciertos tipos de ataques.
Pero los hacks de sesión son solo un elemento en la caja de herramientas de un pirata informático, y las contraseñas son un objetivo principal, por lo que no deben tratarse como algo a lo que su programa debe aferrarse (incluso en la memoria) durante cualquier período de tiempo; una contraseña debe estar marcada tan pronto como sea posible después de la entrada y la cadena de la contraseña se borra de inmediato.
Entonces, mi respuesta a tu pregunta sería no, no deberías considerar guardar una contraseña para reutilizarla más tarde.
Lea otras preguntas en las etiquetas passwords encryption session-management