Si en una pantalla de inicio de sesión el usuario envía un formulario con su nombre de usuario y contraseña, la contraseña se envía en texto sin formato (incluso con POST, corrígeme si estoy equivocado).¿Cómo enviar una contraseña de forma segura a través de HTTP?
Entonces, la pregunta es, ¿cuál es la forma correcta de proteger al usuario y su contraseña contra el tercero que podría estar escuchando a escondidas los datos de comunicación?
Soy consciente de que HTTPS es una solución al problema, pero ¿hay alguna forma de garantizar al menos cierto nivel de seguridad utilizando el protocolo HTTP estándar (solicitud POST)? (Tal vez usando javascript de alguna manera)
EDITAR que puede haber dejado de lado algunas cosas importantes.
Lo que me trataba era una página, es decir, la página de inicio de sesión generada por PHP, que por supuesto se envía al usuario en la solicitud HTTP GET como un archivo HTML. No hay una conexión (@Jeremy Powel) establecida entre el servidor y el cliente, por lo que no puedo crear dicho protocolo de protocolo de enlace. Y quiero que el proceso completo sea transparente para el usuario; desea enviar una contraseña, no tratar con la criptografía.
Gracias.
buen punto sobre la conexión persistente. –
Probablemente no podrá lograr esto sin que el cliente use la criptografía, pero el usuario no tiene que ver tal proceso. Simplemente ingresa su contraseña y el código que genera su PHP (javascript por ejemplo) maneja todo por usted. –
El problema que describes es la razón por la que se inventó HTTPS. Si envía un secreto al cliente para cifrar la contraseña, un oculista podrá olfatearlo y descifrar la contraseña en el viaje de regreso. – jnoss