現在很多網站都使用AJAX讓用戶登錄。AJAX登錄安全漏洞
然而,這種設計存在一個(我認爲)巨大的安全漏洞。
如果登錄失敗,則在向服務器發出的請求中使用了用戶名/密碼。
如果由於某種原因,用戶在此時走到AFK,惡意用戶可以查看用戶發出的請求(firebug/devtools)。
這是正確的嗎?
有什麼我們可以做的(不這麼認爲)?
現在很多網站都使用AJAX讓用戶登錄。AJAX登錄安全漏洞
然而,這種設計存在一個(我認爲)巨大的安全漏洞。
如果登錄失敗,則在向服務器發出的請求中使用了用戶名/密碼。
如果由於某種原因,用戶在此時走到AFK,惡意用戶可以查看用戶發出的請求(firebug/devtools)。
這是正確的嗎?
有什麼我們可以做的(不這麼認爲)?
如果Firebug在請求期間處於活動狀態,它只記錄請求。除此之外,它還會記錄常規POST和AJAX POST(對於GET來說是相同的,但是使用登錄名會受到阻礙,因爲它會導致以純文本形式將密碼寫入日誌文件中)。
所以沒有區別。此外,惡意用戶可以簡單地安裝鍵盤記錄器,如果真正的用戶足夠愚蠢,不鎖定他的電腦...
哦,如果證書是完全無效的(不只是在打字錯誤),根本沒關係...
感謝您的觀點。我只是不同意你最後一點:'噢,如果憑證無效,那根本就沒有關係......'。這很重要。特別是對於密碼。用戶可能在他的密碼中輸入了一個字符。這將導致幾乎整個密碼可見。這也是密碼字段在用戶輸入錯誤憑證時總是空白的原因。 – PeeHaa
是的,在這種情況下,你是對的。 – ThiefMaster
當然,如果憑證不正確(因爲登錄失敗),如果某些其他用戶在未關閉Firefox的用戶上使用devtools,它會影響嗎?
這很重要。大多數失敗的登錄嘗試是因爲第一個字母被大寫或不是最後的錯誤號碼。如果知道基數詞,那麼可能有超過10%的機會可以使用邏輯推理來猜測密碼 –
即使沒有安裝Firebug,也就是說有人沒有安裝數據包嗅探器或鍵盤記錄器來捕獲登錄嘗試。
我並不是想讓你偏執,但這些比你描述的方法更容易竊取密碼,並且沒有太多可以做的事情。
在責任級別,軟件不能對這些類型的物理安全漏洞負責。本地IT管理員或安全專家負責制定防止此類事件的策略。
我想這可能是對的。也許在發送AJAX請求之後,Javascript應該會在發送詳細信息之後清除失敗的細節。
您可以使用RSA使用公鑰進行加密,即使在發送請求之前的JavaScript中也是如此。沒有私鑰(你只能在服務器端),不可能從Firebug日誌中解密它。 – pimvdb
@pimvdb,這是一個有趣的想法... –
它往往會打破瀏覽器的「保存密碼」功能,因爲當表單實際提交時密碼不在輸入字段中了......所以只需使用HTTPS並且不要不關心不安全的客戶。 – ThiefMaster