significado secure puerto example security authentication https

security - secure - https significado



¿Se puede enviar un nombre de usuario y contraseña de manera segura a través de HTTPS a través de parámetros de URL? (6)

Con seguridad es una gran palabra. SSH evitará que otros usuarios lo recuperen, pero ¿realmente desea mostrar la contraseña de alguien en la cadena de consulta? ¿Qué pasa con el tío parado sobre el hombro de los usuarios? ¿Qué hay de la inyección SQL? Muy mala idea, al menos meterla en una publicación de formulario.

Ayer, un colega y yo mantuvimos un acalorado debate sobre si es seguro enviar credenciales de inicio de sesión a través de parámetros de URL como medio de autenticación. Señaló correctamente que HTTPS encripta todos los caracteres que no son nombre de host / puerto en una URL antes de enviar una solicitud al lado del servidor.

Sin embargo, sigo pensando que hay casos límite aquí donde es posible robar estas credenciales, y creo que deben enviarse a través de un POST HTTPS. ¿Es esto realmente un medio seguro de enviar datos de inicio de sesión / token?


En lo que respecta a la transmisión de las credenciales, tiene razón. Pero hay muchas otras cosas a considerar, como el historial de brwser, los archivos de registro del servidor, los usuarios que miran la pantalla, etc., lo que sería un riesgo en ese caso.


La URL solicitada puede aparecer en los registros del servidor web y en el historial / marcadores del navegador, lo que no es bueno.


No tenía idea de que HTTPS encriptara la URL también, es bueno saberlo.

Sin embargo, desde una perspectiva de seguridad, me molestaría más el hecho de que las credenciales puedan leerse en la barra de la URL. Sin mencionar posiblemente almacenado en el historial del navegador.


También hay otra solución que estoy intentando. Puede usar manejadores de PHP para la sesión, para almacenar datos de sesión directamente en su base de datos como una cadena fácilmente con sus manejadores. Necesitará una tabla de sesión en su base de datos con un tiempo de vencimiento. Una vez que envíe los datos de inicio de sesión de HTTPS, si es correcto, puede almacenarlos en la variable $ _SESSION, y si lo hizo bien en la interfaz, irá a su base de datos. Como esto no está expuesto fuera de PHP, tendrá un sistema de inicio de sesión robusto, y en las cookies de los clientes SÓLO hay ID de sesión almacenada en lugar de tokens, cuentas u otros datos confidenciales.

Referencia: http://es.php.net/manual/en/function.session-set-save-handler.php


Tome un paso adicional si tiene una base de datos de fondo. Envíe el nombre de usuario y la contraseña a través de un formulario, haga que su back-end devuelva un token (un guid), escriba el token en una tabla de base de datos y asigne un tiempo de expiración, y luego use ese token en la cadena de consulta en lugar de credenciales . Ahora su sistema será muy seguro y tendrá un identificador de sesión único como un plus.