我已经阅读了有关会话的微软指南,但我仍然不明白:当我调用 session["somesession"] 这个方法每次都读取会话 cookie?
我看到了一个随机的 sessionid KOJEAKBAALANILPHAGONBEIC 这是取自http://www.w3schools.com/
我的问题是:这个小字符串如何安全?如果网站有很多活动会话,很容易猜到
我已经阅读了有关会话的微软指南,但我仍然不明白:当我调用 session["somesession"] 这个方法每次都读取会话 cookie?
我看到了一个随机的 sessionid KOJEAKBAALANILPHAGONBEIC 这是取自http://www.w3schools.com/
我的问题是:这个小字符串如何安全?如果网站有很多活动会话,很容易猜到
使用 ASP.NET,您可以将会话数据存储在内存或数据库(例如 SQL Server)中。当您第一次在应用程序中使用 session 时,它会向客户端返回一个 session cookie。
来自客户端的所有未来请求也将传递会话 cookie(其中包括一个 id,例如您包含的那个)。您是正确的,会话 ID 本身绝不是安全的(尽管它有足够的字符来防止它受到简单的暴力攻击)。
然而,这就是 SSL 发挥作用的地方。如果您通过 SSL 为您的网站提供服务,那么该 cookie 的内容将在通过网络传输时被加密,任何窥探者都无法窃取您的会话标识符(当然,除非您的网站容易受到 XSS 攻击) .
一般来说,会话数据存储在远程服务器内存中,每个会话都有唯一的 sessionId。在访问会话对象之前,总是会为每个页面请求生成一个新的会话 ID。并且客户端具有存储在 cookie 中的 sessionid 的引用。
所以你看到的只是一个参考,而不是真实的会话数据。希望能帮助到你。