<input type="password" />
Tarayıcının kullanıcıdan parolayı kaydetmesini istemeyeceği bir yol bulduğumu hatırlıyorum . Ama bir boşluk çiziyorum. Bunu yapacak bir HTML özelliği veya bir JavaScript numarası var mı?
Yanıtlar:
Kullanmayı deneyin autocomplete="off"
. Yine de her tarayıcının destekleyip desteklemediğinden emin değilim. MSDN belgeleri burada .
DÜZENLEME : Not: çoğu tarayıcı bu özellik için desteği bırakmıştır. Bkz tüm modern tarayıcılar ile uyumlu "kapalı" = Is otomatik tamamlama?
Bu muhtemelen web sitesi tasarımcısına değil kullanıcıya bırakılması gereken bir şeydir.
<input type="password" autocomplete="off" />
Bunu bir kullanıcı olarak eklemek isterim ki, bunun çok can sıkıcı ve üstesinden gelinmesi gereken bir güçlük olduğunu düşünüyorum . Kullanıcılarınızı daha da kötüleştireceği için bunu kullanmanızı şiddetle tavsiye ederim.
Parolalar MRU'da saklanmamıştır ve doğru yapılandırılmış genel makineler kullanıcı adını bile kaydetmez.
Başka bir şekilde çözdüm. Bunu deneyebilirsin.
<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>
#diğer yol
<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>
// autocomplete = "off" özniteliğini eklemeniz gerekir veya giriş kutusuna class .auto-complete-off ekleyebilir ve keyfini çıkarabilirsiniz
Misal:
<input id="passfld" type="password" autocomplete="off" />
OR
<input id="passfld" class="auto-complete-off" type="password" />
Aşağıdakileri denedim ve her tarayıcıda işe yarıyor gibi görünüyor:
<input id="passfld" type="text" autocomplete="off" />
<script type="text/javascript">
$(function(){
var passElem = $("input#passfld");
passElem.focus(function() {
passElem.prop("type", "password");
});
});
</script>
Bu yol, zaman aşımı tekniklerini kullanmaktan çok daha güvenlidir, çünkü kullanıcı odaklandığında giriş alanının şifreye dönüşeceğini garanti eder.
Güvenlik konularına gelince, işte bir güvenlik danışmanının size tüm saha sorunu hakkında söyleyeceği şey (bu gerçek bir bağımsız güvenlik denetiminden alınmıştır):
HTML Otomatik Tamamlama Etkin - HTML formlarındaki şifre alanlarında otomatik tamamlama etkinleştirilmiştir. Çoğu tarayıcı, HTML formlarına girilen kullanıcı kimlik bilgilerini hatırlama özelliğine sahiptir.
Bağıl Risk: Düşük
Etkilenen Sistemler / Cihazlar: o https: // * ** * *** /
Ayrıca , bunun gerçekten özel veriler içeren herhangi bir alanı kapsaması gerektiğini kabul ediyorum . Bir sitenin güvenli tutulması gereken herhangi bir şeye [evrensel olarak veya yasal uyum gerekliliklerine göre] erişeceği her durumda, bir kişiyi her zaman kredi kartı bilgilerini, CVC kodunu, şifrelerini, kullanıcı adlarını vb. Yazmaya zorlamanın uygun olduğunu düşünüyorum. Örneğin: satın alma formları, banka / kredi siteleri, vergi siteleri, tıbbi veriler, federal, nükleer vb. - değil Stack Overflow veya Facebook gibi Siteler .
Diğer site türleri - örneğin işe girip çıkmak için TimeStar Online - aptalca, çünkü işte her zaman aynı bilgisayarı / hesabı kullanıyorum, kimlik bilgilerini o siteye kaydedemiyorum - garip bir şekilde Android'imde yapabilirim ama iPad'de değil. Paylaşılan bilgisayarlarda bile bu çok kötü olmaz, çünkü başka biri için giriş / çıkış yapmak gerçekten hiçbir şey yapmaz ama amirinizi rahatsız eder. (İçeri girip hatalı yumrukları silmeleri gerekir - sadece halka açık bilgisayarlara kaydetmemeyi seçin).
<input type="password" placeholder="Enter New Password" autocomplete="new-password">
Hadi bakalım.
İşte en iyi cevap ve en kolayı! Senin önünde fazladan şifre alanını koyun input
alan ve set display:none
böylece tarayıcı içinde doldurur zaman, bir in iste bu, input
sizin için önemli olan kalmamasıdır.
Bunu değiştir:
<input type="password" name="password" size="25" class="input" id="password" value="">
buna:
<input type="password" style="display:none;">
<input type="password" name="password" size="25" class="input" id="password" value="">
display:none
benim için çalışmıyor (Chrome 61 OSX), ancak bu <input type="password" style="position: absolute; top: -1000px;">
JQuery'yi kullanabilir, öğeyi kimliğe göre seçebilirsiniz:
$("input#Password").attr("autocomplete","off");
Veya öğeyi türe göre seçin:
$("input[type='password']").attr("autocomplete","off");
Veya ayrıca:
Saf Javascript kullanabilirsiniz:
document.getElementById('Password').autocomplete = 'off';
aşağıdaki gibi de kullanabilirsin
$('#Password').attr("autocomplete", "off");
setTimeout('$("#Password").val("");', 2000);
otomatik tamamlama olarak görmek = kapalı itiraz edildi, ben daha yeni çözüm önermek.
Parola alanınızı normal bir metin alanına ayarlayın ve girişinizi CSS kullanarak "diskler" ile maskeleyin. kod şu şekilde görünmelidir:
<input type="text" class="myPassword" />
input .myPassword{
text-security:disc;
-webkit-text-security:disc;
-mox-text-security:disc;
}
Lütfen bunun firefox tarayıcılarında uygun şekilde çalışmayabileceğini ve ek bir çözümün gerekli olduğunu unutmayın. Buradan daha fazla bilgi edinin: https://stackoverflow.com/a/49304708/5477548 .
Çözüm bu bağlantıdan alınmıştır , ancak SO "no-hotlinks" ile uyum sağlamak için burada özetledim.
Büyük tarayıcıların çoğunda, dışında bir girdiye sahip olmak ve herhangi bir biçime bağlı olmamak, tarayıcının gönderimin olmadığını düşünmesini sağlar. Bu durumda, oturum açma işleminiz için saf JS doğrulaması kullanmanız gerekir ve şifrelerinizin şifrelenmesi de gerekli olacaktır.
Önce:
<form action="..."><input type="password"/></form>
Sonra:
<input type="password"/>
Aşağıdaki çalışmaları Firefox ve Chrome'da buldum.
<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>
Bunların hepsi formlar bölümündedir. "person" ve "mypswd" istediğiniz şeylerdir, ancak tarayıcı "userid" ve "passwd" yi bir kez kaydedecek ve değişmedikleri için bir daha asla kaydetmeyecektir. Gerçekten ihtiyacınız yoksa "kişi" alanını ortadan kaldırabilirsiniz. Bu durumda, tek istediğiniz, web sayfanızın kullanıcısı tarafından bilinen bir şekilde değişebilen "mypswd" alanıdır.
Otomatik tamamlamayı kapatmak için firefox, edge ve Internet Explorer'ı edinebilmemin tek yolu, aşağıdaki gibi form ifademe autocomplete = "false" eklemektir:
<form action="postingpage.php" autocomplete="false" method="post">
ve form girdime autocomplete = "off" eklemem ve türü aşağıdaki gibi metin olarak değiştirmem gerekiyor:
<input type="text" autocomplete="off">
Görünüşe göre bu html kodunun tarayıcılarla standartlaştırılması gerekiyor. type = password formu, tarayıcı ayarlarını geçersiz kılacak şekilde revize edilmelidir. Sahip olduğum tek sorun, giriş maskelememi kaybetmiş olmam. Ancak işin iyi yanı, sinir bozucu "bu site güvenli değil" ifadesi Firefox'ta görünmüyor.
benim için, kullanıcı zaten kimlik doğrulaması yapıldığından ve benim değişiklik kullanıcı adı ve şifre kısmından dolayı bu önemli değil