Hola amigos,
Me estoy especializando en aplicaciones PHP, y quisiera conocer mas sobre modelos de login (inicio de sesión).
¿Cual es vuestra manera para hacer un login en una página y reestringir el contenido de dentro? Mi modo es el siguiente, espero vuestras sugerencias:
- Contraseña en la base de datos encriptada md5.
- En el form del login, el javascript encripta la contraseña en md5 mediante una función y lo mando a un campo oculto "encryptedpass". (el proceso de registro es el mismo)
- Pongo el campo password vacío, ya que no hay necesidad de enviarlo y que nos lo puedan "snifear". Por lo tanto solo mando el usuario y la contraseña encriptada a través de la red.
- Compruebo con ajax (ajax.open(comprueba-usuario.php?usuario=$_POST['usuario'])). Como lo que mandamos es md5, y lo que hay en la base de datos también, basta con compararlos para saber si se introdució bien.
- Si es correcto, el javascript manda el form a logged.php, el cual comprueba de nuevo si los datos introducidos son correctos en la base de datos, por seguridad. En caso afirmativo, asigna $_SESSION['usuario'] = $_POST['usuario'];
- Luego en todos los .php que requieran haber iniciado sesion correctamente le aplico un:
Código PHP:
session_start();
if(!empty($_SESSION['usuario']))
CONTENIDO RESTRINGIDO
else
echo $no_session;
- Para salir simplemente pongo un botton tipo submit que lleve al siguiente PHP cuando lo clico:
Código PHP:
session_start();
session_destroy();
header("Location:index.php");
Me gustaría saber si esto, puede tener algun bug de seguridad grave, ya que empieza a realizar cosas importantes y no quiero sorpresas. Y también que sistemas usais vosotros para estos casos.
Un saludo expertos!