campos de contraseña HTML

3

Imagina que estás en una página HTML que te ofrece el servicio de cambio de contraseña. Algunos sitios web traen la contraseña anterior en un campo de contraseña, que no puede leer. ¿Es posible recuperar la contraseña en el campo? (p. ej., código fuente, ¿está olfateando la sesión HTTP?)

¿Cómo maneja HTML la "seguridad" de este campo?

    
pregunta 05.09.2015 - 07:02
fuente

4 respuestas

15

Si tienen la contraseña antigua real en el campo, puede recuperarla mirando la fuente de la página HTML. Pero generalmente solo hay un marcador de posición como "esta era la contraseña antigua" que se usa para detectar si el usuario cambia la contraseña o si se cambia algo más dentro del formulario. Con la seguridad adecuada, el sitio ni siquiera puede poner la contraseña antigua en el formulario, ya que la contraseña de texto simple no debe ser conocida por el sitio porque la contraseña se almacenó de manera irreversible (consulte cómo se almacenan sus contraseñas en Internet ... ).

    
respondido por el Steffen Ullrich 05.09.2015 - 08:31
fuente
6
  

Algunos sitios web traen la contraseña anterior en un campo de contraseña, que   no puedes leer.

Cuando ve puntos o asteriscos en el campo de contraseña, es porque su navegador recuerda su nombre de usuario y contraseña y cuando la página está cargada llena los campos.

A veces, sobre todo en los formularios de cambio de contraseña, su 'contraseña antigua' aparece como un conjunto de asteriscos. El servidor nunca debe enviar la contraseña o su longitud al cliente, en su lugar se debe usar una cadena de asteriscos de longitud constante o aleatoria.

Hay algunas reglas a seguir con las contraseñas. Las contraseñas nunca deben ser enviadas al cliente. Es posible que la computadora haya sido robada o quizás alguien más la esté usando, y como los usuarios tienden a usar la misma contraseña muchas veces, esto puede comprometer otras cuentas en diferentes sitios.

Además, las contraseñas nunca deben almacenarse en el servidor. En su lugar, se debe utilizar el método salt-hash . Esto hace que las contraseñas sean más difíciles de utilizar en caso de robo en nuestra base de datos. Y también evita que programadores descuidados envíen contraseñas al cliente.

Estas son las mejores prácticas que siguen la mayoría de los sitios, pero los diseñadores pueden hacer las cosas de manera diferente y, a menudo, peligrosamente. Le animo a leer las fuentes del sitio web y tratar de entender cómo se hacen las cosas.

    
respondido por el edmeme 05.09.2015 - 13:41
fuente
3

Si te refieres a la contraseña que está guardada en el navegador y se muestra como asteriscos, simplemente puedes revelarla editando el código fuente de la página y cambiando el tipo de entrada de password a text . Puedes ver y editar el código fuente de la página en Chrome y Firefox haciendo clic derecho en el campo de entrada y seleccionando el elemento de inspección.

    
respondido por el Ahmed Elmasry 05.09.2015 - 08:52
fuente
2

En caso de duda, la información de la contraseña es realmente transmitida por el servidor. Bueno, suponiendo que de hecho haya tal tipo de información presente:

  • Recuperar este tipo de información mediante el rastreo de los datos transferidos de HTTP cuando se reciben o envían. La información significativa debe ser parte de los datos recibidos y los datos enviados. datos.
  • Recuperando la información de la contraseña del DOM.

Puedo mencionar dos excelentes complementos para Firefox para lograr potencialmente este objetivo. Datos de sabotaje: para capturar los datos HTTP. Firebug: para buscar el DOM y HTML

Puede enfrentar el problema de que la contraseña no será de texto sin formato. Esto puede indicar que los datos deben ser descifrados en el lado del cliente por algún script. Entonces, solo habría una secuencia de tomas donde la información es genuina. Cada seguridad adicional ahora debería depender del proceso de verificación en el lado del servidor. Aun cuando este parece ser el mejor método para garantizar la seguridad, una gran parte del proceso depende de la interfaz de usuario, por lo que es vulnerable.

En general, realmente depende de la secuencia de seguridad real utilizada para este proceso.

La mejor manera de obtener datos genuinos es mientras el cliente envía los datos, asumiendo que no habrá un proceso de cifrado antes de que se envíen los datos.

No creo que el propio HTML proporcione funciones avanzadas para manejar este tipo de datos, simplemente ocultando el contenido.

Pero asumo que los datos son procesados por un script en el lado del cliente para mantener la información en secreto. Esta sería la mejor manera de compensar la seguridad faltante. Además, los datos pueden no ser una contraseña, sino más bien un hash o un token.

Aquí hay un ejemplo simple para su caso:

<!DOCTYPE html>
<html>
<body>

Type the secret code:
<input id="Passwd" name="Passwd" type="password" placeholder="Passwort" class="" value="catchme">
<p>Click the button to return the value of secret code.</p>

<button type="button" onclick="myFunction()">Try it</button>

<script>
function myFunction() {
    alert(document.getElementById("Passwd").value);
}
</script>

</body>
</html>

En línea: enlace puede aparecer una ventana emergente de advertencia de XSS.

    
respondido por el Noli 05.09.2015 - 19:03
fuente

Lea otras preguntas en las etiquetas