2015-09-04 80 views
1

我通過舊網站加入自動完成=「關閉」到密碼字段會,確保他們散列等,試圖提高安全性。如何阻止瀏覽器保存的密碼值

但是我怎麼能停止,如果在瀏覽器用戶選擇存儲密碼。就像有人將他們的電腦解鎖一樣,他們可以很容易地進入管理員登錄,因爲即使在輸入框中輸入了autocomplete =「off」,用戶名和密碼也會被預填充。

我想我可以使用JavaScript來檢查密碼字段的值的存在(例如,當瀏覽器填滿它),然後將其刪除。但要檢查一個值,您需要將輸入框的類型更改爲「文本」,並且一旦將其更改回「密碼」,瀏覽器會使用值重新填充框。

有沒有辦法阻止這一點,因爲我可能認爲這可能是一個安全漏洞,用於那些使用相同密碼的人,因爲您可以將DOM元素更改爲文本,以純文本形式查看該值,然後嘗試其他網站相同的價值。

我試圖使用了此功能的代碼,其中

getEl =舊的跨瀏覽器的功能document.getElement DOM =我自己上載功能

function clearPSW() 
{ 
    var p=getEl('strPassword'); 
    p.setAttribute("type","text"); 
    console.log("value is " + p.value); 
    // if I exit here without changing back BOTH username and password fields 
    // remain blank - although the PSW field is now a text field. 
    //return; 
    if(p.value!="") 
    { 
     console.log("clear"); 
     p = "";  
    } 
    // as soon as I do this the browser re-fills the input boxes! 
    p.setAttribute("type","password"); 
} 

DOM(function(){ 
    console.log("run DOM"); 
    setTimeout(1000,clearPSW()); 
}); 

DOM是否有任何方法所有的或者是給用戶的是聰明的,而不是在瀏覽器中存儲密碼等?顯然,我正試圖處理這些不安全的人,並迫使他們每次都重新輸入密碼。

謝謝!

+1

可能重複[你怎麼禁用瀏覽器自動完成網絡表單字段/輸入標記(http://stackoverflow.com/questions/2530/how-do-you-disable-browser-autocomplete-on-web-form-field-input-tag) –

回答

0

瀏覽器如Chrome now ignore autocomplete=off

這是真的給他們是否存儲密碼的用戶。如果他們這樣做,他們應該在不使用電腦時鎖定桌面,並且不要與其他人共享他們的操作系統帳戶。

你可以說,打開自動完成關閉意味着用戶要麼選擇一個非常簡單的猜密碼,否則將它寫在即時貼然後貼到鍵盤。

0

你的 「真正的」 密碼前場包括一個隱藏的密碼字段:

<input type="password" style="display:none"/> 

<input type="text" name="username"/> 

<input type="password" name="password"/> 

這工作!

+0

這不(或不再)起作用。 –

0

我的解決辦法是:裏面的HTML輸入從type="password"type="text"

  1. 更改類型
  2. 改變從type="text"該輸入的類型type="password"

    寫腳本,假設輸入具有id="pwd" 。然後:

    document.getElementById('pwd').setAttribute('type', 'password')

  3. 作出調用該函數(因爲如果你不會,大多數瀏覽器仍然會插入他們的密碼緩存的延遲。我的瀏覽器停止這樣做時延遲> 1400):

setTimeout( () => document.getElementById('pwd').setAttribute('type' 'password') , 1500)