Escollos al lanzar su propia funcionalidad de "mostrar contraseña"

9

Estoy considerando la posibilidad de emular la funcionalidad "Mostrar contraseña", disponible en algunos navegadores más nuevos, en un sitio web, esencialmente como un polyfill para los navegadores que no. La forma común de hacer esto es llamar a una función de JavaScript que alterna el tipo de entrada entre password y text , pero dado que son datos de contraseña, desconfío de esto.

  1. ¿Al colocar una contraseña de texto sin formato en una entrada text , se corre el riesgo de que los complementos maliciosos eliminen la contraseña?

  2. Específicamente, ¿los navegadores modernos implementan algún mecanismo de seguridad alrededor de las entradas de tipo password además de la ofuscación visual usando puntos?

  3. ¿El enlace anterior refleja las mejores prácticas actuales de la industria para este tipo de funcionalidad?

pregunta Jules 15.05.2018 - 19:14
fuente

2 respuestas

6
  

¿Al colocar una contraseña de texto simple en una entrada de texto, se corre el riesgo de que los complementos maliciosos raspen la contraseña?

Los complementos malintencionados pueden eliminar cualquier dato de formulario, los campos de contraseña incluidos o incluso iniciar sesión antes de que se escriban. Así que cambiar el tipo no hace ninguna diferencia aquí.

En general, no tiene sentido intentar defenderse contra los complementos maliciosos del navegador. Si tu usuario tiene uno, se acabó el juego.

  

Específicamente, ¿los navegadores modernos implementan algún mecanismo de seguridad alrededor de las entradas de tipo de contraseña además de la ofuscación visual usando puntos?

Los campos de contraseña se han autocompletado de forma predeterminada. Para evitar que el navegador guarde la contraseña y pueda filtrarla como sugerencias más adelante, debe asegurarse de establecer explícitamente autocomplete="off" en el campo de entrada. Este debe tratar con ambas sugerencias mientras se escribe, y el autocompletado estado anterior. cuando se usa el botón de retroceso.

Es posible que haya navegadores más antiguos que ignoren autocomplete="off" , quién sabe, los navegadores solían hacer todo tipo de cosas estúpidas, pero dudo que sea un gran porcentaje. Aún así, podría ser un problema.

La presencia de un campo de contraseña hace que algunos navegadores adviertan de forma más agresiva acerca de las conexiones no cifradas. Por lo tanto, utilizar campos de texto podría silenciar las advertencias, lo cual es malo. Pero si está utilizando TLS con HSTS, eso no debería ser un problema.

Además, puede interferir con los administradores de contraseñas (tanto los navegadores integrados como los externos). Pero eso es más una usabilidad que un problema de seguridad.

  

¿El enlace anterior refleja las mejores prácticas actuales de la industria para este tipo de funcionalidad?

Aparte del problema de autocompletar, creo que esto estaría bien siempre y cuando esté de acuerdo con el riesgo inherente de navegar por los hombros. Sin embargo, quién sabe lo que he pasado por alto.

Como dice "las mejores prácticas de la industria", debo mencionar que manipular el DOM directamente de esa manera ya no es lo que se hace, pero eso no tiene nada que ver con la seguridad.

Sin embargo, para ser honesto, debo admitir que no soy un gran fanático de esta funcionalidad. Se siente un poco hacky. Recomendaría no implementarlo a menos que tenga razones muy específicas para hacerlo. Sin embargo, eso se basa más en mi instinto (y en una aversión general a las características no esenciales) que en cualquier otra cosa.

    
respondido por el Anders 15.05.2018 - 22:51
fuente
3

La mayor amenaza, con mucho, es la característica de autocompletar. Asegúrese de que el navegador no guarde la contraseña en el historial de autocompletado.

  1. Sí, sin embargo, es difícil explicarlo, ya que esos complementos maliciosos podrían inyectar los JS para cambiar los campos de contraseña en campos de texto.
  2. AFAIK, los navegadores no hacen nada especial con los campos de Contraseña, aparte de evitar que los caracteres se lean en la pantalla e impiden que el autocompletado guarde el contenido (aunque no el administrador de contraseñas integrado).
  3. Estoy bastante seguro de que Industry Best Practice (TM) sería no hacer esto en absoluto, pero siempre que se asegure de conocer los riesgos, puede hacerlo de manera segura.

Mire esta pregunta sobre el desbordamiento de pila .

    
respondido por el IceMage 15.05.2018 - 22:53
fuente

Lea otras preguntas en las etiquetas