2009-07-23 94 views
8

在很多應用程序中,如果您輸入的用戶名或密碼有誤,就會得到一個非特定錯誤,指出輸入的用戶名不存在或密碼爲該用戶名稱不正確。用戶名未找到或密碼錯誤消息太不明確

我(天真地)希望應用程序指定其中發生了兩個錯誤之一。是否有理由不區分它們?我想這會讓攻擊者更難猜測正確的用戶名/密碼組合,但是有沒有任何文獻,研究或類似的方法支持這一假設?

回答

10

原因將是安全性:它基於失敗的嘗試阻止finding out which user names exist

這應該與用戶體驗平衡;如果您被告知或者您的用戶名或密碼不正確,可能會被視爲非常無益或令人討厭。

+3

但是,有關哪些用戶名存在的信息通常可以通過創建新帳戶來獲取。 – 2011-05-10 01:31:51

1

常識意味着模糊的消息更好,因爲攻擊者無法知道他們是否猜到了正確的用戶名。

1

這是一個額外的箍攻擊者需要跳過。如果他冷酷地攻擊應用程序,他不會知道任何用戶名或密碼。爲什麼給他多一點的信息告訴他他已經找到了用戶名?隱瞞信息會更好。

如果攻擊者只是想確認一個特定的用戶名存在,該怎麼辦?舉個例子,說一個政客作爲迷信網站的用戶名。用戶名本身是敏感信息,您不想確認哪些存在,哪些不存在。

+0

+1爲真實世界的例子:) – slolife 2009-07-23 16:40:17

2

是的,這正是很多應用程序/網站未指定登錄哪部分不好的原因。我曾經有同樣的抱怨,但後來我讀了一堆電腦安全書,包括19 Deadly Sins of Software Security。除了溢出和SQL注入之外,邁克爾霍華德確實解釋了爲登錄返回統一錯誤的原因。

HTH

1

這就是給攻擊者儘可能少的信息。 有些網站的密碼提醒更進一步。當您輸入您的電子郵件地址以接收新密碼或重置密碼鏈接時,他們不會告訴您您的電子郵件地址是否已在數據庫中註冊,但會給您這樣的消息:「如果您輸入的電子郵件地址位於我們的數據庫中您將收到一條消息......「這樣可以防止攻擊者找出受害者使用的是哪個電子郵件地址,也可能會通知受害者有人試圖闖入她的帳戶。

相關問題