2017-03-17 58 views
0

我工作的登錄系統爲用戶登錄後創建一個會話。我試圖讓系統儘可能安全。我發現一些聲稱session_start()本身不安全的資源,並建議採取額外的步驟來保護它。參見:How to create bulletproof sessionsSecure login system with PHP and MySQL。我使用WireShark玩過,並且看到使用HTTP連接時找到登錄憑證(通過POST發送)和cookie是多麼容易。我讓網站自動重定向到HTTPS,現在我無法找到憑據(注意:「加密握手」是什麼意思?)。我看到this後,它說Session_start安全

有沒有這樣的事情作爲安全的cookie,除非它只通過SSL傳輸。

因此,它讓我認爲使用HTTPS就足夠安全的登錄系統。是否正在使用session_start(),並且現在只使用HTTPS連接保證安全性,還是需要添加更多安全措施?

回答

1

HTTPS和session_start()解決了兩個獨立的問題。 HTTPS可以防止middle man attacks的概率。會話管理哪個用戶具有做什麼(以及用戶)的憑證。當攻擊PHP會話時,通常通過強力或瀏覽器導出或通過受感染的計算機完成。 PHP是一個開源項目,意味着任何人都可以在創建會話時查看他們使用的算法。黑客利用這一點來排除所有不必要的檢查可能性並根據會話闖入某人。創建你自己的網站會讓你的網站更難以破解(假設你讓自己的ID足夠長等)。這就是說,除非我正在寫一個銀行網站,否則我不會打擾。

+0

感謝您的回覆。只是爲了確保我能夠正確理解:如果有人能夠訪問會話ID,他們可以假裝是該用戶。這是通過蠻力攻擊來嘗試猜測會話ID。由於我的用戶數據並不太敏感,因此僅使用session_start就足夠了。如果我想添加一些額外的保護,我將不得不使生成id更廣泛。我得到的一切正確嗎? –

+0

是的,但是當我說會話ID時,我的意思是由PHP會話設置的所有cookie。 – Neil

+0

明白了。非常感謝。 –