¿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.