1. 程式人生 > >瀏覽器儲存使用者名稱和密碼機制 ?

瀏覽器儲存使用者名稱和密碼機制 ?

問:比如我在https://klb.kltong.com/login.jsp成功登入後瀏覽器問我保不儲存密碼,我點了是,然後跳轉到閘道器付款的時候,

發現使用者名稱和密碼莫名賦值到了這裡,我看了下原始碼沒有相同點,應該不是id或者name重複的原因,
所以感覺很奇怪,而且不止一個瀏覽器有這樣的問題,而且都是付給了金額和下面的消費密碼,所以不知道這裡面瀏覽器是怎麼解析的呢?

 

分析: 登陸頁面和付款頁面的input是不是id或者name屬性值是相同的?
    如果是html5 可以使用sessionStroage來儲存相關的資訊是瀏覽器功能,根據域名繫結賬號和密碼 

防止瀏覽器記住使用者名稱及密碼的簡單實用方法

如何設定能禁止瀏覽器自動儲存表單資訊,比如使用者名稱,密碼? 
現在很多瀏覽器都有自動填寫功能,我在input上使用了autocomplete="off",但在有的瀏覽器上還是被記住了使用者名稱跟密碼,請問有沒有更有效及簡便的方法來防止瀏覽器記住使用者名稱及密碼? 

1、針對瀏覽器記住密碼 
1).首先大部分瀏覽器都是根據表單域的type="password"來判斷密碼域的,所以針對這種情況可以採取“動態設定密碼域”的方法: 

複製程式碼程式碼如下:
<input type="text" name="password" onfocus="this.type='password'" />

解釋:當這個文件框獲取焦點時才將其變成密碼域,這樣瀏覽器就不會記住密碼,當然為了更加完善,還可以把autocomplete="off"屬性也加上。 
2).在onload事件,把密碼框的值清空,即: 

複製程式碼程式碼如下:
<script language="javascript"> 
window.load = function(){ 
document.getElementById('密碼域ID').value=''; 
}; 
</script> 


3).頁面採用https協議,因為https是不會對錶單進行儲存資訊的。 

4).採用flash做登入表單,這種情況瀏覽器也不會記錄表單資訊。 
5).再來個變態的好了,就是可以把type="password"改成type="text",因為type不是password就不會出現記住密碼功能,然後設定一個變數如:var val=""或者是設定一個隱藏域<input
type="hidden" name="val">,最後用onpropertychange把密碼換成一行圓點,並把值賦給val,提交時再把val的值還原回去,由於效果和*號一樣。 使用者是看不出來的。 

2、針對有些瀏覽器外掛的自動填表功能 
這個就比較麻煩了,我想這種情況應該是外掛記住表單域name的值,然後再進行填表,這種情況,我覺得可以在頁面載入時動態更改name的值,當提交表單的時候再把表單的值組合成正確的對應值再提交。這個沒有經過驗證,只是我個人的想法。你可以試試 

如果以上這些方法還滿足不了你,那我也沒辦法了。 

建議: 
試一下把對應域名下的cookie清掉,瀏覽器應該是根據cookie來記住使用者名稱密碼的。 
(不是的,有的瀏覽器是在你提交表單後,根據你提交的值來記住的) 
(對的 有些瀏覽器不記錄在COOKIE 這個比較頭疼 順便問下INPUT裡輸入過的值如何清除?我希望能像銀行的那樣 輸入過的值不再出現) 
瀏覽器記住密碼的實現方式就是通過尋找type為password的input輸入框,然後前邊一個輸入框就作為使用者名稱記住。所以解決這個問題的辦法就是在使用者名稱input和密碼input之間增加一個type為text的輸入框設定css屬性display為none。

【注:】本文來源:http://jingyan.baidu.com/article/3c343ff701b6fc0d3779632f.html

          指令碼