我已經寫了一個簡單的自定義會話處理程序(在MySQL中,但這不相關),它只是將序列化會話數據,會話標識和當前時間保存到表中。在自定義處理程序中保護PHP會話ID
雖然會話存在,但會話ID與攻擊者的密碼一樣有價值,這使我相信我應該以某種方式加密它。
將數據存儲到數據庫之前,爲了強制攻擊者強制使用會話ID僞造cookie,是否值得對其進行散列處理?
我的網站已經對所有連接使用HTTPS。
我已經寫了一個簡單的自定義會話處理程序(在MySQL中,但這不相關),它只是將序列化會話數據,會話標識和當前時間保存到表中。在自定義處理程序中保護PHP會話ID
雖然會話存在,但會話ID與攻擊者的密碼一樣有價值,這使我相信我應該以某種方式加密它。
將數據存儲到數據庫之前,爲了強制攻擊者強制使用會話ID僞造cookie,是否值得對其進行散列處理?
我的網站已經對所有連接使用HTTPS。
所以你要防止的是,如果攻擊者從你的數據庫訪問會話ID的轉儲,他可以擺出任意用戶的身份,因爲他可以按原樣使用會話ID。對於這一點來說,以散列密碼的方式散列id實際上是個不錯的主意,所以單向查找是可能的,但散列值本身已變得毫無用處。由於會話id通常很快就會過期,因此在暴力破解中幾乎沒有用處。
另一方面,由於會話id通常非常快速過期,因此可能沒有多少指向。攻擊者的機會之窗非常小。攻擊者能夠從數據庫中獲得會話id的轉儲的重要性更加嚴重,並且是一種更糟糕的攻擊,因爲這意味着攻擊者可能已經可以訪問其他數據。
它仍然是一個值得保護的小缺點(輕微的計算開銷,稍微複雜的會話ID調試)。
在stackoverflow上會話ID是「加密」嗎?您需要防止來自多個客戶端的同一會話的惡意使用,而不是標識符本身。 – zerkms
@zerkms,除非我能讀懂會話表,否則我不會知道。 – Martin
因此您的網站上的用戶可以閱讀會話表? – zerkms