2014-01-05 28 views
1

在我的註冊表單中,我對輸入焦點上的電子郵件和用戶名進行了ajax db查找。 。這是一個壞主意嗎?爲什麼?如果用戶查找>允許查找,我還計劃附加一個鎖定。是否提交數據庫查找錯誤?

+0

此問題似乎是題外話題,因爲它涉及安全性,屬於[Security.SE](http://security.stackexchange.com)。 – Gumbo

+0

@Gumbo我其實在尋找一個普遍的答案。如果它的好壞,使用它的缺點等等。不僅僅是在網絡安全角度。 –

回答

2

不,這不是一個壞主意。相反,與僅僅爲了告訴用戶電子郵件已被佔用而必須提交整個表單相比,它改善了用戶體驗並減少了帶寬使用。所有主要網站都這樣做。就拿谷歌的登記表:https://accounts.google.com/SignUp?continue=https%3A%2F%2Fwww.google.com%2F&hl=en

+0

是的,實際上這就是爲什麼我也爲我的用戶這樣做,因爲其他更大的網站具有該功能。但是有什麼缺點? –

+0

我不認爲這有缺點。 –

0

這可能會導致一個User Enumeration漏洞 - 即攻擊者可以很容易地收穫通過蠻力從您的系統的用戶名和電子郵件地址,或通過測試的用戶名和電子郵件地址的另一個列表中的已知列表找出他們是否是活躍用戶。

您提到了添加鎖定,但是根據什麼標準確定嘗試的用戶查找次數?由cookie或會話分組將是不安全的,因爲攻擊者可以簡單地清除他們的cookie或開始新的會話。 IP會是更好的方式(例如,每30分鐘每個唯一IP允許10次查找),但作爲攻擊者可以使用分佈式攻擊,他們可以繞過這種方法。

如果這是您系統的問題,請參閱我的answer here以獲得更安全的方式。這涉及用戶只能在通過發送到該地址的鏈接繼續註冊過程的表單上輸入他們的電子郵件地址。如果您是作爲第一步執行此操作,那麼您會知道該用戶在下一步中嘗試過哪些用戶名,因爲這些查找將與輸入的電子郵件地址相關聯,並且可以通過唯一身份限制用戶名查找的數量電子郵件。這將使攻擊者難以枚舉用戶名,並且幾乎不可能枚舉電子郵件地址。

相關問題