Giriş türü = parola, tarayıcının parolayı hatırlamasına izin verme


Yanıtlar:


123

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.


2
Sayfayı HTTPS ile ve HTTP başlığı veya META etiketi aracılığıyla da önbelleğe almayı engelleyebilirsiniz. Bu şekilde, şifre de depolanmaz (en azından Internet Explorer'da).
doekman

Doğrulama ile ilgili olarak, HTML5 spesifikasyona otomatik tamamlama özelliğini ekler, böylece artık sorun yok
VictorySaber

9
Gelecekteki okuyucular için not: Tüm büyük tarayıcılar, özniteliği göz ardı etmeye yöneliyor. (bkz. stackoverflow.com/a/21348793/37706 )
rdans

@RyanDansie bunu işaret ettiğin için teşekkürler. Cevabı güncelledim. Eski cevap ... eski.
tvanfosson

8
"Bu, muhtemelen web sitesi tasarımcısına değil kullanıcıya bırakılması gereken bir şey." buna sahip olmanın hem teknik hem de teknik olmayan nedenleri vardır. Örneğin, tek seferlik şifreler hatırlanmamalıdır. "PIN kodunuzun ilk hanesini girin" yazan banka siteleri bir diğeridir. Bir iş analistinin bir şifre alanı istediğine karar verebileceğini ve bu seçimi geliştiriciden kaldırabileceğini unutmayın.
Sprague

61

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


23
"Kullanıcılarınızı rahatsız etmeyin" için +1. Bu tür bir özellik tam olarak bunu yapar. Tıpkı önbelleğe almayı zorlayan siteler gibi, geri düğmesi formu temizler. SON DERECE rahatsız edici.
cletus

6
+1 Tamamen katılıyorum. Yönetici için, yalnızca değiştirmek istiyorsanız bir şifre girdiğiniz müşteri profili sayfasını düzenleyin. Bu şekilde yöneticiler, müşterinin bilgilerini her düzenlemeye gittiklerinde şifreyi değiştirmezler.
DavGarcia

14
Kredi kartı numarası alanları için oldukça kullanışlıdır. PayPal'ın formu her tarayıcıda saklanır ve bilgisayarınızı kullanan herkes tüm verileri yeniden girebilir, bu nedenle manuel olarak gidip tüm hatırlanan alanları silmeniz gerekir.
Egor Pavlikhin

31
Kullanıcının oturum açma bilgileriyle hiçbir ilgisi olmayan bir parola ayarlayabildiği bir formda, otomatik tamamlamayı etkinleştirmek aslında daha can sıkıcı bir seçenektir - tarayıcı aslında hiçbir şey yapamayacağı bir parolayı kaydetmeyi önerebilir. Ayrıca, güvenlik hassas bir konu ise, tüm genel makinelerin doğru şekilde yapılandırıldığını varsaymazdım.
JRB

3
Bunu tek kullanımlık şifre için kullanıyorum. Jrb'nin dediği gibi, tarayıcının bunu saklaması çok can sıkıcı olurdu.
Danation

12

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"  />

4
Bu, benim senaryomda daha iyi bir çözüm olan otomatik tamamlamayı önlemek yerine tarayıcının şifreyi saklamasını engelliyor.
Pau Fracés

Teşekkürler, benim için en son Chrome'da çalıştı Lütfen Dikkat: Yalnızca Chrome'a ​​izin verilen dahili bir sistemde kullanılır, üretim sitesinde kullanıyorsanız daha fazla test yapın.
Izion

@AntoVinish, umarım son çözümüm firefox 40'ta çalışır.
Sarwar Hasan

7

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.


5

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


5
Parola kaydetmek istemediğiniz bir nedenle buraya bir yorum eklemeniz yeterli . Yöneticilerin bir kullanıcının şifresini değiştirebileceği kullanıcı hesapları olan bir web sitesine sahibim. Müşteri şu anda Chrome'un "şifre değiştir" formuna girilen şifreyi her kullanıcı için her seferinde kaydetmeyi teklif etmesinden çileden çıkmıştır , çünkü kullanıcı düzenleme formunu yanlış bir giriş formu olarak tanımlamaktadır. Görünüşe göre, "Şifreyi Asla Hatırlama" gibi basit talimatlar vermek onların ötesinde.
charredUtensil

5
<input type="password" placeholder="Enter New Password" autocomplete="new-password">

Hadi bakalım.


2
İşte yol bu, orada pek çok geçici çözüm var ve bu kadar basit, Firefox (v67) ve Chrome'un (75) en son sürümü ile test edildi.
Mariano Ruiz

Chrome 80, formu gönderdikten sonra da şifreyi hatırlamayı teklif edecektir.
Bouke

4

İşte en iyi cevap ve en kolayı! Senin önünde fazladan şifre alanını koyun inputalan ve set display:noneböylece tarayıcı içinde doldurur zaman, bir in iste bu, inputsizin 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="">

Aslında, formda 2 şifre alanı varsa çalışır, ancak yeni tarayıcı görünür ve etkin değilse 2. şifreyi yoksayar; (
Cedric Simon

1
Kullanmak display:nonebenim için çalışmıyor (Chrome 61 OSX), ancak bu <input type="password" style="position: absolute; top: -1000px;">
işe yarıyor

2

Her yerde çalışan bu kolay çözümü kullandığı yerde şu yanıtı da okuyun (Safari mobil için düzeltmeye de bakın):

<input type="password" readonly onfocus="this.removeAttribute('readonly');"/>

1

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';

1

aşağıdaki gibi de kullanabilirsin

$('#Password').attr("autocomplete", "off");
setTimeout('$("#Password").val("");', 2000);

1

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.


0

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"/>

1
Bu arada, bu muhtemelen kullanmaman gereken bir numara. Form etiketi kullanmadığınızda, kodunuz varsayılan olarak HTML4 olur ve kullanıcılarınızın hesaplarını doğrulamayı zorlaştırır.
Cannicide

0

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.


0

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


2
BUNU YAPMA. Veriler, ağ üzerinden düz metin olarak gönderilmeye devam edecektir; bu, ilk etapta HTTP (HTTPS değil) ile ilgili tüm sorun, dolayısıyla "can sıkıcı" uyarı mesajınızdır. Ortadaki Adam hala düz metin verilerini görebildiğinden ve sunucu tarafı günlük kaydı farklı şekilde yapılandırılabildiğinden (istek başlıklarını depolayabilirken, POST depolamış olsaydı tamamen başka sorunlar da olabilirdi) için kullanıcının kimliğinin önceden doğrulanmış olması hiçbir fark yaratmaz. HTTPS altındaki veriler).
Jacob

https trafiği şifreler. Bunu herkese açık bir İnternet uygulamasının parçası olarak kullanıyorsanız, bunu yine de yaparsınız. Gönderi yöntemi, yer imi koymayı engeller ve bir HTML içindeki php kodunun çoklu Iframe'leri URL yerleştirmeyi önler. Teknik olarak, tam yolunuzu girmeniz gerekiyor. Eğer dağıtım yapıyorsanız, $ _SERVER değişkenlerine bakmak yerine, metinde yazılmış temel url ile bir $ _SESSION değişkenini yüklemenizi tavsiye ederim. $ _SERVER ['HTTP_HOST'] ve $ _SERVER ['PHP_SELF'], her ikisinin de birden fazla istismara sahip olması nedeniyle yalnızca halka açık olmayan ortamlarda kullanılmalıdır.
drtechno

Btw,
örneğim

"java onclick" ile yürütülen bir şifreleme şemasına kimse dokunmadı ve ardından şifreleme rutininin ardından formu göndermedi.
drtechno
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.