2013-01-16 35 views
0

我想減慢攻擊者的行爲,這些攻擊者會暴力破解我的應用程序泄露帳戶信息的部分內容。 (例如,如果你打的註冊頁面,使用中的用戶ID,頁面響應告訴你的用戶ID將是一件好事隨後字典攻擊。)合理的退避算法?

什麼是適當的算法使連續失敗嘗試越來越慢?真實世界的例子是iPhone上連續的錯誤密碼。

我在PHP中實現,但任何僞代碼響應將不勝感激。答案的關鍵部分是:

不順嘗試N,延誤X.響應

而一個真正偉大的答案將包括:

中號嘗試,是我們人爲誤差公差範圍內,所以M + 1附近的曲線「曲棍球棒」

回答

0

簡單的幾何感覺太嚴酷了對於那些具有常用名稱的人。 (約翰·史密斯可能需要幾次嘗試找到一個空閒的用戶ID)。

sleep(pow(2,$failed_attempts));

也許我撿一個愚蠢的常數?