2009-08-27 26 views
2

我正在爲我們的網站創建一個walkup創建帳戶頁面。在用戶提交表單後,即使兩個密碼匹配並且有效,我總是會清除默認值=「」,以便在偏執狂的輸入中輸入類型=「密碼」。在我們的設計師問我是否有真正意義的要求之後,我開始思考這個問題。如果他們不是有問題的驗證失敗,我肯定可以在提交後將密碼回覆到value =「」字段,但是這種方法是否存在漏洞?我們在此特定頁面上默認爲https。我知道你可以做一個html重寫來改變輸入類型,這樣你可以回顯到一個非屏蔽的輸入,但是這似乎只能影響本地用戶。設置類型「密碼」輸入與驗證失敗後之前提交的值

實例形式:

<input type="text" name="username" value="<?php echo $username; ?>"> 
<input type="password" name="password1" value=""> 
<input type="password" name="password2" value=""> 

在提交時,檢查用戶名看起來像一個適當的電子郵件,密碼匹配,並且密碼擊敗我們的最低要求。如果電子郵件冒犯了,但密碼沒有,我可以添加...

<input type="password" name="password1" value="<?php echo $password1; ?>"> 
<input type="password" name="password2" value="<?php echo $password2; ?>"> 

...並且無憂?不,我不使用註冊全局變量。我手動將它們從$ _POST中取出並首先進行消毒。

喬希

回答

1

我想你不應該做它作爲一個同事可能會竊取您的密碼將個人資料頁面,並做了查看源代碼。

如果您的密碼使用secure hash進行擾碼,您可能不應該能夠實現此功能,因爲這是單一方式,並且您無法恢復原始密碼。

+0

我使用sha1 +鹽,一旦密碼實際驗證。所以,主要的威懾力是物理訪問計算機,而有人專門在這個創建帳戶頁面? – Josh 2009-08-27 19:11:10

1

我認爲這樣做是一個壞主意,因爲HTML源可能會被緩存,即使您使用HTTP標頭告訴它它不應該被緩存。這取決於瀏覽器,微軟建議在BODY標籤之後添加一個額外的HEAD標籤。 Microsoft has more information對這個Internet Explorer的「功能」。