我對不使用SSL的PHP會話安全性感興趣。通過數據包嗅探保護經過身份驗證的PHP會話免受會話劫持攻擊
令我驚訝的是,如果一箇中間人嗅探用戶和服務器之間交換的數據包,即使它被認證,也很容易竊取會話。我知道有一些策略可以限制損失,例如,登錄/註銷時更改sessionid,記錄/檢查用戶系統參數(例如操作系統,瀏覽器)。
但是,如果在一個已經過身份驗證並且沒有註銷的會話期間(沒有超時的時間),攻擊者能夠獲得會話ID,然後他可以輕易地劫持會話(儘可能我理解這個問題)。
我想到了一種可能的解決方案,在加密的登錄驗證期間,服務器可以向客戶端發送隨機會話密碼。會話密碼僅在該登錄會話期間有效。因此,在該會話期間交換的每個消息都必須使用會話密碼(例如MD5(會話密碼+消息內容))進行簽名。
問題是否修復?假設攻擊者無法對最初的登錄交換進行密碼分析,這種方法的缺點是什麼?
沒有違法,但考慮只使用SSL ......它可能耗資約$ 49 - 每年$ 100,但是它比不必支付開發者維護自定義'安全scheme' –
+1便宜得多。此外,@JoãoSalada,隨機會話密碼如何在沒有SSL的情況下發送? –
沒有冒犯! ;)我只是想從頭開發我的博客,所以我可以理解這個主要問題。但是當你不需要保密(我的意見)時,使用ssl是一個巨大的矯枉過正。該方案雖然我對看起來很簡單,但...這就是爲什麼我要問,如果它解決了問題,或者是有缺陷的..從保密 – Leaurus