Recuerdo haber visto una forma de tener una <input type="password" />
tal que el navegador no le pedirá al usuario que guarde la contraseña. Pero me estoy quedando en blanco. ¿Existe un atributo HTML o algún truco de JavaScript que haga esto?
Recuerdo haber visto una forma de tener una <input type="password" />
tal que el navegador no le pedirá al usuario que guarde la contraseña. Pero me estoy quedando en blanco. ¿Existe un atributo HTML o algún truco de JavaScript que haga esto?
Respuestas:
Intente usar autocomplete="off"
. Sin embargo, no estoy seguro de si todos los navegadores lo admiten. Documentos de MSDN aquí .
EDITAR : Nota: la mayoría de los navegadores han dejado de admitir este atributo. Consulte ¿Es autocomplete = "off" compatible con todos los navegadores modernos?
Podría decirse que esto es algo que debería dejarse en manos del usuario y no del diseñador del sitio web.
<input type="password" autocomplete="off" />
Solo me gustaría agregar que, como usuario, creo que esto es muy molesto y complicado de superar. Recomiendo encarecidamente no usar esto, ya que es muy probable que agrave a sus usuarios.
Las contraseñas ya no están almacenadas en la MRU y las máquinas públicas configuradas correctamente ni siquiera guardarán el nombre de usuario.
Resolví de otra manera. Puedes probar esto.
<input id="passfld" type="text" autocomplete="off" />
<script type="text/javascript">
// Using jQuery
$(function(){
setTimeout(function(){
$("input#passfld").attr("type","password");
},10);
});
// or in pure javascript
window.onload=function(){
setTimeout(function(){
document.getElementById('passfld').type = 'password';
},10);
}
</script>
#de otra manera
<script type="text/javascript">
function setAutoCompleteOFF(tm){
if(typeof tm =="undefined"){tm=10;}
try{
var inputs=$(".auto-complete-off,input[autocomplete=off]");
setTimeout(function(){
inputs.each(function(){
var old_value=$(this).attr("value");
var thisobj=$(this);
setTimeout(function(){
thisobj.removeClass("auto-complete-off").addClass("auto-complete-off-processed");
thisobj.val(old_value);
},tm);
});
},tm);
}catch(e){}
}
$(function(){
setAutoCompleteOFF();
});
</script>
// necesita agregar el atributo autocomplete = "off" o puede agregar class .auto-complete-off en el cuadro de entrada y disfrutar
Ejemplo:
<input id="passfld" type="password" autocomplete="off" />
OR
<input id="passfld" class="auto-complete-off" type="password" />
Intenté lo siguiente y parece que funciona en cualquier navegador:
<input id="passfld" type="text" autocomplete="off" />
<script type="text/javascript">
$(function(){
var passElem = $("input#passfld");
passElem.focus(function() {
passElem.prop("type", "password");
});
});
</script>
De esta manera es mucho más seguro que usar técnicas de tiempo de espera, porque garantiza que el campo de entrada cederá a la contraseña cuando el usuario la enfoque.
En cuanto a los problemas de seguridad, esto es lo que un consultor de seguridad le dirá sobre todo el tema de campo (esto es de una auditoría de seguridad independiente real):
Autocompletar HTML habilitado: los campos de contraseña en los formularios HTML tienen habilitado el autocompletado. La mayoría de los navegadores tienen la posibilidad de recordar las credenciales de usuario ingresadas en formularios HTML.
Riesgo relativo: bajo
Sistemas / dispositivos afectados: o https: // * ** * *** /
También estoy de acuerdo en que esto debería cubrir cualquier campo que contenga datos verdaderamente privados. Siento que está bien obligar a una persona a que siempre escriba la información de su tarjeta de crédito, código CVC, contraseñas, nombres de usuario, etc. siempre que ese sitio acceda a algo que deba mantenerse seguro [universalmente o por requisitos de cumplimiento legal]. Por ejemplo: formularios de compra, sitios bancarios / de crédito, sitios de impuestos, datos médicos, federales, nucleares, etc., no sitios como Stack Overflow o Facebook.
Otros tipos de sitios, por ejemplo, TimeStar Online para registrar la entrada y la salida del trabajo, es estúpido, ya que siempre uso la misma PC / cuenta en el trabajo, que no puedo guardar las credenciales en ese sitio, por extraño que parezca, puedo hacerlo en mi Android pero no en un iPad. Incluso en PC compartidas, esto no sería tan malo, ya que marcar la entrada / salida de otra persona realmente no hace nada más que molestar a su supervisor. (Deben ingresar y eliminar los golpes erróneos, simplemente elija no guardar en PC públicas).
<input type="password" placeholder="Enter New Password" autocomplete="new-password">
Aqui tienes.
¡Aquí está la mejor respuesta y la más fácil! Coloque un campo de contraseña adicional delante de su input
campo y configure el display:none
, de modo que cuando el navegador lo complete, lo haga de una manera input
que no le interese.
Cambia esto:
<input type="password" name="password" size="25" class="input" id="password" value="">
a esto:
<input type="password" style="display:none;">
<input type="password" name="password" size="25" class="input" id="password" value="">
display:none
no me funciona (Chrome 61 OSX), pero esto sí:<input type="password" style="position: absolute; top: -1000px;">
Lea también esta respuesta donde está usando esta solución fácil que funciona en todas partes (consulte también la solución para Safari móvil):
<input type="password" readonly onfocus="this.removeAttribute('readonly');"/>
Puede usar JQuery, seleccione el elemento por id:
$("input#Password").attr("autocomplete","off");
O seleccione el artículo por tipo:
$("input[type='password']").attr("autocomplete","off");
O también:
Puede usar Javascript puro:
document.getElementById('Password').autocomplete = 'off';
también puedes usarlo como sigue
$('#Password').attr("autocomplete", "off");
setTimeout('$("#Password").val("");', 2000);
dado que autocomplete = off está en desuso, sugiero una solución más reciente.
Establezca su campo de contraseña en un campo de texto normal y enmascare su entrada con "discos" usando CSS. el código debería verse así:
<input type="text" class="myPassword" />
input .myPassword{
text-security:disc;
-webkit-text-security:disc;
-mox-text-security:disc;
}
Tenga en cuenta que es posible que esto no funcione correctamente en los navegadores Firefox y que se necesita un recorrido adicional. Lea más sobre esto aquí: https://stackoverflow.com/a/49304708/5477548 .
La solución se tomó de este enlace , pero para cumplir con SO "no-hotlinks" la resumí aquí.
En el caso de la mayoría de los principales navegadores, tener una entrada fuera de y no conectado a ningún formulario engaña al navegador haciéndole creer que no hubo envío. En este caso, tendría que utilizar la validación JS pura para su inicio de sesión y también sería necesario el cifrado de sus contraseñas.
Antes de:
<form action="..."><input type="password"/></form>
Después:
<input type="password"/>
Encontré los siguientes trabajos en Firefox y Chrome.
<form ... > <!-- more stuff -->
<input name="person" type="text" size=30 value="">
<input name="mypswd" type="password" size=6 value="" autocomplete="off">
<input name="userid" type="text" value="security" style="display:none">
<input name="passwd" type="password" value="faker" style="display:none">
<!-- more stuff --> </form>
Todos estos están dentro de la sección de formularios. "person" y "mypswd" es lo que desea, pero el navegador guardará "userid" y "passwd" una vez, y nunca más, ya que no cambian. Puede eliminar el campo "persona" si realmente no lo necesita. En ese caso, todo lo que desea es el campo "mypswd", que podría cambiar de alguna manera conocida por el usuario de su página web.
La única forma en que puedo hacer que Firefox, Edge e Internet Explorer desactiven el autocompletado es agregar autocomplete = "false" en mi declaración de formulario como:
<form action="postingpage.php" autocomplete="false" method="post">
y tengo que agregar el autocomplete = "off" a la entrada de mi formulario y cambiar el tipo a texto Me gusta:
<input type="text" autocomplete="off">
Parece que este código html debe estandarizarse con los navegadores. el formulario type = password debe revisarse para que anule la configuración del navegador. El único problema que tengo es que perdí mi máscara de entrada. Pero en el lado positivo, el molesto "este sitio no es seguro" no aparece en Firefox.
para mí, no es un gran problema ya que el usuario ya está autenticado y es mi parte de cambio de nombre de usuario y contraseña