|
 Victor Salgado - 2016-09-08 15:46:35
Un gusto, antes que nada muchas gracias por tu gran aporte... Te comento, implemente en un formulario de logueo pero cuando el usuario cierra sesión (hago session_destroy() y regresan a la página de logueo, ya no les es posible ingresar, debugueando veo que recibo correctamente $_POST['cryptoPost'] pero $formId = $crypto->decodeForm(); al parecer no funciona. Intente con $crypto->reset(); sin éxito. Agradezco mucho tu ayuda.
Saludos,
 Victor Salgado - 2016-09-08 15:52:33 - In reply to message 1 from Victor Salgado
Quité session_destroy() y ya deja entrar, pero supone un hueco ya que se puede ir atras en el historial y retomar la última sesión.
Quedo a tu ayuda.
Saludos.
 Francisco del Aguila - 2016-09-08 16:00:52 - In reply to message 2 from Victor Salgado
Hola, Victor:
Tienes que tener en cuenta que el almacenamiento de la clave AES se realiza a dos niveles:
- A nivel de SERVIDOR, se almacena en una variable de sesión.
- A nivel de CLIENTE, se almacena en el session storage del browser.
La clave AES ha de ser consistente en los dos niveles, y si destruimos la sesión en el server, debemos destruir también a nivel de session storage en el navegador. Esto se hace llamando a la función reset de la clase javaScript:
<script>cryptoPost.reset();</script>
Al destruir la clave en sesión y en storage session se fuerza la creación de nuevas claves.
Un saludo.
 Victor Salgado - 2016-09-08 16:17:12 - In reply to message 3 from Francisco del Aguila
Súuuuper Francisco! Ya quedó... después del session_destroy() hice un header("location: login?resetKeys=1");
Y en el loguin agregué:
<?php if (isset($_GET['resetKeys'])) { ?>
<script>cryptoPost.reset();</script>
<?php } ?>
Ya funciona pero tengo una última duda... es también necesario
if (isset($_GET['resetKeys'])) $crypto->reset(); ???
Mil gracias por tu ayuda amigo.
 Francisco del Aguila - 2016-09-08 16:27:36 - In reply to message 4 from Victor Salgado
No es necesario, puesto que al destruir la sesión forzamos a la clase PHP a generar de nuevo el par de claves RSA en la llamada al constructor.
Feliz programación!
 Francisco del Aguila - 2016-09-09 08:48:54 - In reply to message 4 from Victor Salgado
Hola de nuevo, Victor!
He actualizado la clase, de forma que ahora detectará automáticamente cuando hay un cambio de sesión. Ahora no necesitas resetear la clave AES en el local storage.
 Victor Salgado - 2016-09-10 01:19:45 - In reply to message 6 from Francisco del Aguila
Gracias totales amigo. Hago el upgrade asap y cualquier cosa te molesto.
Saludos :)
|