我正在開發一種新的HttpServer, 我想支持HttpServer類似於Java的功能 如何實現這樣的功能?作爲HttpSession的一部分實現Session-ID?
我所知道的是,您需要生成一個長的session-id唯一字符串,並通過一個在可配置的分鐘數後過期的cookie發送它,並且您需要在每次響應時更新此cookie。
但它是否足夠安全?爲什麼沒有人可以嘗試猜測session-ids字符串並嘗試劫持其他人會話?
我正在開發一種新的HttpServer, 我想支持HttpServer類似於Java的功能 如何實現這樣的功能?作爲HttpSession的一部分實現Session-ID?
我所知道的是,您需要生成一個長的session-id唯一字符串,並通過一個在可配置的分鐘數後過期的cookie發送它,並且您需要在每次響應時更新此cookie。
但它是否足夠安全?爲什麼沒有人可以嘗試猜測session-ids字符串並嘗試劫持其他人會話?
如果時間夠長,它可以承受一段時間的暴力攻擊。如果您不使用SSL,其他人可以通過網絡「偵聽」會話密鑰。
如果您想開始生成足夠好的會話ID,SecureRandom類是一個很好的開始。還有其他一些需要注意的事項,其中最顯着的是其中生成的ID的大小。有關更多詳細信息,請參閱文章「Secure Session Management With Cookies for Web Applications」。討論熵值生成的部分可能是你需要的。
應該多久?那是唯一的安全措施? (可以說人們不能嗅探這個網絡) – KingDave 2011-04-07 12:13:55
可以有其他的措施。例如,您可以要求將該會話綁定到特定的IP地址。這可以幫助一點,儘管通過代理不能很好地工作。流行安全的另一點是防止XRF攻擊。基本上每個頁面都會生成一個新的附加隨機數,並且每次都必須返回。 – MJB 2011-04-07 20:46:47