2010-11-19 64 views
2

目前,我通過將會話中的某個密鑰與MySQl數據庫中的同一個密鑰進行匹配來進行身份驗證用戶會話。我用每個頁面加載的MD5保護的隨機數重新生成會話。我知道會話本身並不安全,而且我正在尋找更快的安全選項,可以快速連接到此方法。

任何想法?

回答

3

由於會話數據存儲在服務器端,會話ID用於將客戶端的請求與某個會話相關聯,因此需要保護會話ID。保護會話ID唯一可行的措施是使用TLS/SSL加密客戶端和服務器之間的連接。

因此,只要客戶端和使用之間的數據傳輸得到保護,您就可以使用會話。此外,您可以將PHP會話修復爲TLS/SSL會話,以便PHP會話僅在該特定的TLS/SSL會話中可用。

0

您已經開始喋喋不休,無法提高安全性,並可能損害您網站的功能。

我在一個MySQL數據庫

即使撇開拼寫錯誤匹配的會話是同一個鍵一個鍵autheticatic [原文]用戶會話,這是無稽之談。你的意思是你用這種方法驗證請求嗎?如果是這樣,它仍然不能幫助你的安全。您已通過取消參考會話來驗證請求。請求是否經過授權是完全不同的 - 如果您需要驗證用戶那麼您應該在會話數據中標記這一點。

聽起來好像你正試圖阻止CSRF,但這與所有用戶,會話或請求的身份驗證有關。

我重新生成會話......在每一個頁面加載

再次,這是語義無稽之談。你不能「重新生成會話」。你的意思是你創建一個新的sessionId?如果是這樣,那麼當用戶試圖打開第二個窗口或使用後退按鈕時,您所實現的就是創建錯誤。它提供了很少的CSRF保護。

是MD5只需使用隨機加密功能,不會使您的應用程序的安全保護

。無論真實數據和代理標識符之間的映射是什麼,它本身都不提供針對MITM的保護。

要麼你描述當前的安全措施做得很糟糕,要麼你寫了很多沒有用處的代碼。

去看看很多Stefan Esser's和/或Chriss Schiflet's的東西。