Respuesta: Duda Sesiones PHP + AJAX GatorV, gracias por tu respuesta, pero creo que no se me ha entendido del todo. Entiendo el concepto de encriptación y su uso, para identificar al usuario correctamente y de forma segura. Éso sé cómo hacerlo y no tengo ninguna duda en ello, gracias. Mi duda es, simplemente, si una vez identificado el usuario, puedo omitir que después session_start(), haga una redirección a una página segura, pasándole las variables de la sesión y lo que sea que utilice.
Lo que pretendo, es, una vez autentificado el usuario, devolver los datos que necesite, vía response sin redirección. Sé que tengo que comprobar si los usuarios tienen permiso para hacer determinadas cosas, de ahí que haya unos determinados roles en la base de datos y que, en caso de hacerme falta, devolveré en la respuesta también al usuario, junto al id, y lo que necesite.
En principio, voy a inyectar el id dentro de los elementos de la página que lo vayan a usar, o hacer que se use como parámetro, vía petición AJAX llamarán a las funciones o métodos que deban llamar y que dicho id tenga permiso para hacer, aunque, en teoría, trataré de impedir que el usuario tenga acceso a cualquier cosa para la que no tenga permiso, diréctamente omitiendo su aparición en el html.
Mi pregunta es, si realmente dicho mecanismo, junto con lo que he expuesto anteriormente, constituye una página web segura, o, en caso contrario, cómo podría hacerlo de forma que fuese igual de seguro que usando sesiones PHP. Porque el registro lo haré en base a una inserción de los passwords y, supongo, que los users encriptados en sha1, y para el login, mandaré dichos elementos encriptados vía ajax para su comprobación, devolveré los elementos necesarios en un array si todo va bien, o un error, como en los distintos formularios ajax para iniciar sesiones, y una vez devueltos, pretendo usar el id, junto con los roles, para crear menús y contenidos personalizados en base al usuario registrado.
Así pues, lo que quiero decir, es si el sistema sería más vulnerable que si lo hiciera de la forma común, o no existe mucha diferencia. Al ejecutar cualquier acción, pasaré dicho id, y el archivo php ya se encargará de devolverme lo que tenga que devolverme. Tal vez dicho id tenga que ir encriptado para no ser susceptible de ser monitorizado, o lo mismo, con un protocolo ssl me vale.
En resumen, lo que quiero hacer es incrementar la experiencia del usuario, quiero que haya una parte pública común a todos, navegable, pero que en cualquier momento, un usuario o admin puedan loguearse para hacer/consultar cualquier detalle sin tener que recargar la página ni que pierdan el sitio en el que se encontraban, tan sólo cargando aquellos menús o botones necesarios.
Todo ello de forma lo suficientemente segura para que no haya problemas. Aunque sé que nada es 100% seguro. |