我有一個忘記密碼的頁面,我需要從用戶那裏詢問他的用戶ID,以便從數據庫提供他的密碼,並且它正在工作,但如果有人輸入任何錯誤,該怎麼辦用戶名。檢查數據庫中用戶ID的可用性
0
A
回答
1
您必須做SELECT
檢查是否存在記錄,如果是,繼續。
1
只需返回一條消息,指出他們輸入了錯誤的用戶標識。
0
SELECT * FROM users WHERE username = inputhere
if (mysql_num_rows($result) > 0)
{
// found it
}
else
{
// doesn't exist
}
這是你在找什麼?
1
如果你問你在做什麼,如果他們完全給你另一個用戶的有效ID,那麼我假設你正在做的事情與你正在恢復的密碼相當不安全(你不只是向他們展示密碼是你的嗎?) - 大多數這樣的系統會通過電子郵件向你發送密碼,至少可以保證只有相關的電子郵件帳戶才能獲得密碼。
2
請注意,在此有一定的風險度量。如果您總是回覆一條消息,指出用戶標識不正確,則可以用它來猜測系統中的用戶標識。攻擊者可以使用通用名稱的變體對此表單進行暴力破解,並最終獲得大量用戶名單。對於任何給定的帳戶,這爲他們提供了以該用戶身份登錄所需的一半信息。
我建議您顯示一條消息,指出已向該帳戶的電子郵件地址發送一封電子郵件,其中包含重置密碼(包括重置所需的時間敏感密鑰)的說明,無論用戶系統中是否存在ID。如果他們沒有收到電子郵件,他們總是可以再次嘗試(假設第一次嘗試在用戶標識中包含錯字)。如果他們實際上並不知道他們的用戶ID,可以通過輸入他們的電子郵件地址來恢復該表格(表現方式與此表格類似,總是在表格上顯示成功,並在適用的情況下發送電子郵件)。
2
您必須執行以下3個步驟來確保嚴密的安全。
1)基於用戶標識從數據庫中獲取用戶信息。如果信息爲空,則向用戶發送錯誤,表示無效的UserId。
2)a)如果您在用戶創建時註冊了EmailId,則將密碼發送到註冊郵件。 b)如果您沒有註冊EmailId,請詢問並匹配用戶註冊時選擇的安全問題。 3)如果可能的話,嘗試合併a)& b)點2)的點以獲得更高的安全性。
相關問題
- 1. 即時用戶名檢查可用性使用數據庫asp.net
- 2. 檢查MySQL數據庫重複的用戶ID
- 3. 檢查數據庫的用戶存在
- 4. 檢查數據庫中的用戶名登錄用戶名MVC3
- 5. Windows用戶檢查數據庫表值
- 6. 用戶名/密碼數據庫檢查
- 7. 檢查oracle數據庫是否可用
- 8. 如何檢查用戶可用性
- 9. 檢查用戶名可用性php
- 10. 檢查用戶可用性問題
- 11. 使用jquery和servlet檢查數據庫中的現有用戶
- 12. 用PHP中的數據庫值檢查用戶輸入值
- 13. 用於檢查用戶名可用性的KeyDown上的Jquery Ajax。數據庫命中太多?
- 14. 檢查當前用戶ID
- 15. 獲取用戶數據庫的Facebook ID
- 16. Python用戶數據檢查
- 17. 檢查用戶名是否在數據庫中使用ASP.Net
- 18. 檢查SOAP數據庫中的SOAP Header用戶名和密碼?
- 19. 檢查數據庫中用戶的類型
- 20. jquery檢查電子郵件可用性/數據庫中的重複
- 21. 如何檢查已存在於數據庫中的用戶更改用戶名
- 22. 如何檢查社交網絡中用戶名的可用性?
- 23. 如何檢查CouchDB中的可用性和預留用戶名
- 24. 在jsp中檢查用戶的可用性表單
- 25. 使用Access數據庫的可用性
- 26. 檢查數據庫調用的數量
- 27. 用戶可用性表的數據庫設計
- 28. 在rails中使用jquery和Ajax檢查用戶可用性
- 29. jQuery的驗證插件,用於檢查數據可用性
- 30. PHP檢查XenForo用戶帳戶數據