¿Las páginas web pueden reconocer que he guardado mi contraseña?

5

Si guarda sus datos de inicio de sesión en Firefox, el nombre de usuario y la contraseña se completan automáticamente en las páginas web correspondientes tan pronto como los visite (si tiene más de 1 cuenta guardada, primero debe seleccionar un nombre de usuario).

¿Pueden las páginas web verificar con JavaScript si los campos de inicio de sesión no están vacíos (sin enviar el formulario)?

Supongo que generalmente esto sería posible, lo vi para la validación de formas en vivo. ¿Pero tal vez estos datos autocompletados siguen otras reglas además de los datos rellenados por el usuario?

    
pregunta unor 20.12.2012 - 18:52
fuente

2 respuestas

4

Javascript puede leer los diálogos de contraseña como cualquier otro campo:

document.getElementsByName("passwordentry")[0].value

así que ciertamente puedes tener una pieza de javascript que verifica si el campo de la contraseña se ha completado mucho más rápido de lo que es humanamente posible, siempre y cuando el usuario tenga javascript habilitado ..

Es posible que desee implementar una prueba de concepto para ver qué tan efectivo es esto en la práctica y si surgen dificultades imprevistas. editar Un punto muy importante de @Stephen Touset es que hay muchos tipos diferentes de entrada automática de contraseñas. Es importante estar al tanto de ellos para detectarlos a todos.

    
respondido por el ryu jin 20.12.2012 - 19:26
fuente
2

Sí, es posible que una página web recupere el contenido de un campo de contraseña a través de JavaScript, al igual que la mayoría de los complementos de relleno automático utilizan JavaScript para insertar la contraseña según la URL y el tipo de entrada o identificación del campo de contraseña. .

La siguiente función imprime todas las contraseñas en la página actual, si hay alguna, y podría modificarse fácilmente para simplemente verificar si el campo de la contraseña tiene una cierta longitud mínima.

(function () {
    var passwords, j, i;
    passwords = "";
    for (j = 0; j < document.forms.length; ++j) {
        for (i = 0; i < document.forms[j].length; ++i) {
            if (document.forms[j][i].type.toLowerCase() == "password") passwords += document.forms[j][i].value + "\n";
        }
    }
    if (passwords) alert("Passwords in forms on this page:\n\n" + passwords);
    else alert("There are no passwords in forms on this page.");
})();

Por supuesto, puede ejecutar esta ejecución con un poco de retraso, en caso de que la página web se cargue más rápido que el autocompletar. Pero tenga cuidado de no tener un retraso demasiado alto en caso de que el usuario sea un mecanógrafo rápido.

    
respondido por el johankj 20.12.2012 - 19:50
fuente

Lea otras preguntas en las etiquetas