在網頁(以https)通過websocket登錄 - 這是安全的嗎?
- 客戶端連接到用的WebSocket(安全WSS超過TSL)
- Server服務器發送「準備就緒的用戶和password'消息
- 用戶輸入信息和客戶端發送它
- Server驗證,並且只要WebSocket的連接,知道接收者是誰
編輯: 我正在考慮上面,而不是USI一個post方法。
在網頁(以https)通過websocket登錄 - 這是安全的嗎?
編輯: 我正在考慮上面,而不是USI一個post方法。
它可以是對一些攻擊安全的,但像往常一樣,有辦法打入網站,我們必須評估安全全盤
它不是從描述清楚,但合理的,您所描述的設置以純文本形式存儲用戶密碼。
這方面的最佳做法是計算密碼的哈希總和with salt並將其保存在數據庫中,因此如果攻擊者設法獲取數據庫轉儲,他們將需要大量時間來根據此密碼猜測密碼。
您應該限制登錄嘗試失敗,因此攻擊者將不能夠容易地通過暴力破解挑一個密碼。
這可能會產生問題這裏記錄的另一件事情:你需要確保憑據沒有在應用程序日誌文件結束(我已經看到了與信用卡號碼)。
類似關心的是保持太久覈查結束後,這使他們更容易敏感信息(以如迫使Java的堆轉儲,並從該文件中選擇它們)
如果你沒有足夠的注意力來減少對私人密鑰的訪問,那麼有人可能會發起一次中間人攻擊。
根據您的應用服務器支持的密碼套件,如果攻擊者竊取密鑰,先前記錄的通信可能容易被解密。抵抗的概念被稱爲forward secrecy。您可以驗證您是否正確調整了您的網絡應用here。
您的證書頒發機構(或任何其他人)可以向您的網站頒發證書,允許攻擊者歪曲您(請參閱Mozilla and WoSign, Additional Domain Errors)。
你也應該設置Content-Security-Policy因此,這將是棘手的迫使瀏覽器代碼發送此AUTH以其它服務器的信息。
攻擊者可以欺騙用戶進入啓動的網絡工具控制檯一些代碼 - 你可以嘗試例如打開Web控制檯在Facebook上,看看他們對此做了什麼。
漏洞得到發現,其中有些是發表在公告,你應該遵循那些你的籌碼(如OpenSSL)和補丁/升級在適當情況下。
非常感謝您的出色反應 - 我很好奇發送關於websocket的passord與發送郵件的方法。 關於散列:如果攻擊者得到了數據庫轉儲的保留,他可以不手動打開websocket併發送散列? –
歡迎。是的,如果攻擊者獲得了數據庫轉儲,他們將能夠在某些方案中登錄。還有其他設計來抵制這種情況(見[SCRAM](https://en.wikipedia.org/wiki/Salted_Challenge_Response_Authentication_Mechanism))。哈希數據庫還具有不允許擴展到其他站點的優點(用戶通常對他們使用的所有東西都有單一密碼)。 – Ivan
至於websockets vs post,我不認爲當你通過TLS做這兩件事時,差別會很大。 – Ivan