2008-12-26 83 views
12

保存和自動填寫用戶名/密碼是大多數現代瀏覽器的一項功能。用戶通常可以選擇以每個域爲基礎禁用此功能。但是,有沒有一個標準的方法來防止密碼緩存?用於禁用密碼緩存的跨瀏覽器技術

這裏強調的是跨瀏覽器,所以我會採用多個並行機制,如果有必要。 (我看到緩存在有非標準登錄字段的情況下被有效禁用,例如一個額外的隱藏密碼字段,但我寧願不要依賴於副作用,其行爲可能會意外地在未來)。

相反,有沒有實現密碼緩存沒有任何禁用功能的瀏覽器/版本?

+0

你想要達到什麼目的?強迫用戶記住密碼,或防止攻擊者在用戶端收集存儲的密碼? – PolyThinker 2008-12-26 16:09:52

+1

礦難不是爲什麼,我只是爲了實施和部署。 (但可能是後者。)客戶:http://www.disa.mil/ – 2008-12-27 00:30:44

+1

您應該只使用CAC;) – erickson 2008-12-27 05:18:49

回答

12

autocomplete="off"添加到您的<input>元素。適用於所有現代瀏覽器,IIRC。

0

給密碼輸入一個隨機生成的名稱,只有您可以識別。例如,將該名稱存儲在隱藏字段中,然後使用它來獲取插入的密碼。這樣,即使瀏覽器緩存了密碼,下次用戶訪問時也無法將其恢復。

您的用戶可能在此時將密碼緩存在顯示器側面的郵箱上,但這實際上是一場完全不同的戰鬥。

同樣的方法可以很好地對付垃圾郵件,因爲大多數漫遊器都依靠尋找共同的字段名稱。

+0

有趣。但瀏覽器仍然會在用戶的磁盤上存儲密碼,這對我們來說是一個安全漏洞。 (哦,我同意你對postit的理論。) – 2008-12-26 15:52:23

+0

多麼荒謬的建議 – 2009-10-13 09:57:55

1

我會想象瀏覽器在表單提交時保存表單的字段。如果你使用AJAX獲取密碼字段的值,發送它,然後清除該字段?表單永遠不會被提交,所以瀏覽器理論上從來沒有機會保存這些值。

0

AFAIK,屏蔽字段(顯示'*'而不是您輸入的符號的字段)永遠不會保存爲自動完成。您想阻止用戶在瀏覽器的密碼保存設施中記住您的網站的密碼嗎?

0

只需在用戶名和密碼之間添加另一個密碼字段,並將樣式設置爲不顯示任何內容。

<!-- Username label and text here> ... <--!> 
<input type="password" id='txtPasswordDud' style='display: none;' /> 
<!-- Actual Password label and text here> ... <--!>