我一直在考慮用戶身份驗證,會話/ cookie以及會話劫持帶來的安全風險等問題。據我所知,使用安全的https://是最有效的方法,以及regenerate_session_id(),並使用隨機字符串進行驗證(在許多其他過程中)。使用數據庫和IP地址的PHP用戶認證?
我的問題是:是否有可能合併一種方法,放棄會話和cookie,並只使用數據庫保存的變量?
這裏是我將如何設置它:
- 具備在可容納一個IP地址的用戶表中的列,以及一個將是一個布爾值。
- 當用戶'登錄'時,將用戶的當前IP地址設置到數據庫中,並將布爾值設置爲false(如果用戶不想'記住')或true (如果他們這樣做)。
- 在頁面加載時,它檢查當前IP地址與用戶數據庫中存儲的IP地址。如果匹配,則該用戶被認爲是有效的。
- 在窗口關閉時,腳本會清除這些值,並且用戶將被「註銷」。如果用戶想'保持登錄狀態'(我知道這是一個巨大的安全風險),那麼一個切換鍵(布爾值)會簡單地停用註銷腳本,並且IP地址將保持存儲爲用戶。
這種方法的回退會是什麼?它甚至有可能嗎?
動態和共享的IP地址可能會導致嚴重的問題是這種方式 –
呀,我本來希望會有一個方式具體識別電腦,但我很快就意識到這樣一個概念不可能安全地工作,更不用說連續的了。 –