RE:web para cambiar claves
Permitir que un usuario cambie su password directamente desde una página web, es una falta de seguridad GRANDE. Ya que con esto, el usuario puede entrar directamente a nuestro sistema. Si el password es capturado, entonces cualquiera puede entrar a nuestro sistema. Muchos exploits y errores de seguridad, solo corren si el usuario entra a nuestro sistema, con esto ya le estamos regalando un paso.
Así que te aconsejo que si vas hacer eso, utilices conexiones SSL (https), y que tengas sumo cuidado en como pasas el password al comando.
Existe el comando system y exec, que te permitirian hacer esto, pero aquí lo aconsejable es usar escapeshellcmd, ya que podrian intentar engañar al sistema para ejecutar otro comando.
Ahora bien, existe un problema.
No puedes usar una linea como la siguiente:
echo -e "passwdviejo\npasswdnuevo\npasswdnuevo" | passwd
Por que passwd no acepta estos caracteres. Passwd tiene una opcion para leer entrada estandar, que es passwd --stdin, pero solo lo puedo ejecutar root.
Así que puedes correr un script de php con privilegios de root, lo cual no es recomendable. O crear un shell, o un programa con privilegios de root, y que php invoque a este programa.
Con privilegios de root, seria algo así como:
echo -e "passwdviejo\npasswdnuevo\npasswdnuevo" | passwd --stdin <nombreusuario>
Saludos!
-
Miguel Angel
Mike79