2010-05-29 61 views
2

我有一個表單,有人可以創建一個新用戶。我想添加一些AJAX來檢查用戶名是否被採用,只要輸入字段失去焦點。 我不確定如何去解決這個問題,因爲這可能會導致暴力攻擊,因爲您可以檢查任何用戶名並查看它是否存在。 有什麼建議嗎?如何安全檢查用戶名是否已被使用?

回答

2

爲什麼不

  1. 油門嘗試一個新的用戶可以使數字(例如只允許「N」在一分鐘內)
  2. 提供一個機制,建議根據用戶的輸入提供用戶名,從而減少用戶通常的有效嘗試次數
1

我從來沒有這樣做過,所以只是一個想法。生成一些與表單一起傳輸的唯一ID(例如uuid)。當你檢查用戶名包括(並檢查)這個唯一的ID。當然,這需要一些服務器端的參與,但是至少在不渲染表單的情況下,您將無法直接調用該函數。

注:爲了增強安全性,您將需要更新的形式獨特的ID每次用戶檢查的值。

2

不會提示時,輸入字段失去焦點,您可以等待提交表單檢查後,直到。如果用戶名已被佔用,一個可靠的解決方案是建議替代用戶名。

2

,如果你是一個論壇,用戶名是不是私人的。只需使用服務器邏輯來限制每分鐘的通話次數。如果你是一家銀行,不同的故事;但在這種情況下,您可以將用戶名分配給銀行賬戶。

3

也許是最好的選擇是限制,在服務器端腳本,嘗試允許用戶做出的數目(基於任一會話,或IP)來合理極限(即10)30內分鐘時間段。

另一種選擇是把一個驗證碼頁面上,確保用戶是人,而不是一個暴力破解程序。

相關問題