Pregunta ¿Cómo se desactiva la función Autocompletar del navegador en el campo del formulario web / etiqueta de entrada?


¿Cómo se deshabilita? autocomplete en los principales navegadores para un específico input (o form field)?


2253
2017-08-05 16:22


origen


Respuestas:


Firefox 30 ignora autocomplete="off" para contraseñas, optando por preguntarle al usuario si la contraseña debe almacenarse en el cliente. Tenga en cuenta lo siguiente comentario desde el 5 de mayo de 2014:

  • El administrador de contraseñas siempre pregunta si quiere guardar una contraseña. Las contraseñas no se guardan sin el permiso del usuario.
  • Somos el tercer navegador en implementar este cambio, después de IE y Chrome.

De acuerdo a Documentación del desarrollador de Mozilla el atributo de elemento de formulario autocomplete impide que los datos de formulario se almacenen en caché en navegadores más antiguos.

<input type="text" name="foo" autocomplete="off" />

2212
2017-08-05 16:24



Además de autocomplete=off, también podría hacer que los nombres de los campos de sus formularios se aleatoricen mediante el código que genera la página, quizás agregando alguna cadena específica de la sesión al final de los nombres.

Cuando se envía el formulario, puede quitar esa parte antes de procesarlos en el lado del servidor. Esto evitaría que el navegador web encuentre contexto para su campo y también podría ayudar a prevenir ataques XSRF porque un atacante no podría adivinar los nombres de campo para un envío de formulario.


248
2017-10-20 13:36



La mayoría de los principales navegadores y administradores de contraseñas (correctamente, en mi humilde opinión) ahora ignoran autocomplete=off.

¿Por qué? Se agregaron muchos bancos y otros sitios web de "alta seguridad" autocomplete=off a sus páginas de inicio de sesión "por razones de seguridad", pero esto en realidad disminuye la seguridad ya que hace que las personas cambien las contraseñas en estos sitios de alta seguridad para que sean fáciles de recordar (y así descifrar) ya que se rompió el autocompletado.

Hace mucho tiempo la mayoría de los administradores de contraseñas comenzaron a ignorar autocomplete=off, y ahora los navegadores están empezando a hacer lo mismo solo para entradas de nombre de usuario / contraseña.

Desafortunadamente, los errores en las implementaciones de autocompletar insertan información de nombre de usuario y / o contraseña en campos de formulario inadecuados, causando errores de validación de formularios o, peor aún, insertando accidentalmente nombres de usuarios en campos que el usuario dejó en blanco intencionalmente.

¿Qué debe hacer un desarrollador web?

  • Si puede mantener todos los campos de contraseña en una página, es un gran comienzo ya que parece que la presencia de un campo de contraseña es el principal disparador para que el usuario / autocompletar pase. De lo contrario, lea los consejos a continuación.
  • Safari nota que hay 2 campos de contraseña y deshabilita la función de autocompletar en este caso, asumiendo que debe ser un formulario de contraseña de cambio, no un formulario de inicio de sesión. Así que asegúrese de usar 2 campos de contraseña (nuevos y confirmar nuevos) para cualquier formulario donde permita
  • Cromo 34, lamentablemente, intentará rellenar automáticamente los campos con user / pass siempre que vea un campo de contraseña. Este es un error bastante malo que, con suerte, cambiarán el comportamiento de Safari. Sin embargo, agregar esto al principio de su formulario parece desactivar la autenticación automática de la contraseña:

    <input type="text" style="display:none">
    <input type="password" style="display:none">
    

Todavía no he investigado completamente IE o Firefox, pero estaré encantado de actualizar la respuesta si otros tienen información en los comentarios.


184
2018-04-23 04:00



A veces incluso autocompletar = apagado haría no prevenir para llenar en credenciales en campos incorrectos, pero no en el campo de usuario o sobrenombre.

Esta solución alternativa se suma a la publicación de apinstein sobre el comportamiento del navegador.

arregla el autocompletado del navegador en solo lectura y configura el permiso de escritura en el foco (clic y pestaña)

 <input type="password" readonly  
     onfocus="this.removeAttribute('readonly');"/>

Actualizar: Mobile Safari establece el cursor en el campo, pero no muestra el teclado virtual. El nuevo Fix funciona como antes pero maneja el teclado virtual:

<input id="email" readonly type="email" onfocus="if (this.hasAttribute('readonly')) {
    this.removeAttribute('readonly');
    // fix for mobile safari to show virtual keyboard
    this.blur();    this.focus();  }" />

Demo en vivo https://jsfiddle.net/danielsuess/n0scguv6/

// UpdateEnd

Porque el navegador automático llena las credenciales al campo de texto incorrecto?

Observé este extraño comportamiento en Chrome y Safari, cuando hay campos de contraseña en la misma forma. Supongo que el navegador busca un campo de contraseña para insertar tus credenciales guardadas. Luego llena automáticamente (simplemente adivinando debido a la observación) el campo de entrada de texto similar más cercano, que aparece antes del campo de contraseña en DOM. Como el navegador es la última instancia y no puedes controlarlo,

Esta solución de solo lectura anterior funcionó para mí.


120
2018-06-16 16:04



<form name="form1" id="form1" method="post" 
      autocomplete="off" action="http://www.example.com/form.cgi">

Esto funcionará en Internet Explorer y Mozilla FireFox, la desventaja es que no es un estándar XHTML.


93
2017-08-05 16:27



La solución para Chrome es agregar autocomplete="new-password" a la contraseña de tipo de entrada.

Ejemplo:

<form name="myForm"" method="post">
<input name="user" type="text" />
<input name="pass" type="password" autocomplete="new-password" />
<input type="submit">
</form>

Chrome siempre autocompleta los datos si encuentra una caja de escriba contraseña, solo lo suficiente para indicar para esa caja autocomplete = "new-password".

Esto funciona bien para mi.

Nota: asegúrese de que con F12 los cambios surtan efecto, muchas veces los navegadores guardan la página en caché, esto me dio una mala impresión de que no funcionó, pero el navegador no presentó los cambios.


57
2017-11-24 17:07



Como otros han dicho, la respuesta es autocomplete="off"

Sin embargo, creo que vale la pena declarar por qué es una buena idea usar esto en ciertos casos como algunas respuestas a esto y duplicar las preguntas han sugerido que es mejor no desactivarlo.

No se debe dejar a los usuarios el bloqueo de los navegadores que almacenan los números de las tarjetas de crédito. Demasiados usuarios ni siquiera se darán cuenta de que es un problema.

Es particularmente importante desactivarlo en campos para códigos de seguridad de tarjetas de crédito. Como esta página estados:

"Nunca guarde el código de seguridad ... su valor depende de la presunción de que la única forma de suministrarlo es leerlo desde la tarjeta de crédito física, lo que demuestra que la persona que lo suministra realmente posee la tarjeta".

El problema es que, si se trata de una computadora pública (cibercafé, biblioteca, etc.), entonces es fácil para otros usuarios robar los datos de su tarjeta, e incluso en su propia máquina, un sitio web malicioso podría robar datos de autocompletar.


53
2018-01-23 21:21



Tendría que suplicar que difiera con las respuestas que dicen para evitar deshabilitar el autocompletado.

Lo primero que debe mencionar es que el autocompletado que no está explícitamente deshabilitado en los campos de formulario de inicio de sesión es un error de PCI-DSS. Además, si la máquina local de un usuario se ve comprometida, un atacante puede obtener trivialmente cualquier información de autocompletar debido a que se almacena en un lugar despejado.

Sin duda hay un argumento para la usabilidad, sin embargo hay un equilibrio muy fino cuando se trata de qué campos de formulario deberían tener autocompletar desactivado y cuáles no.


29
2017-09-17 00:33