Asp.net Sessionid cookie:它是如何工作的



我已经阅读了Microsoft关于session的指南,但我仍然不明白一件事:当我调用session["somesession"]这个方法每次读取会话cookie ?

我看到了一个随机的会话idKOJEAKBAALANILPHAGONBEIC这是取自http://www.w3schools.com/

我的问题是:这个小字符串如何安全?这很容易猜到,特别是如果网站有很多活动会话

. NET可以将会话数据存储在内存或数据库中(例如SQL Server)。当你第一次在应用程序中使用会话时,它将返回一个会话cookie给客户端。

所有来自客户端的未来请求也将传递会话cookie(其中包含一个id,例如您所包含的id)。你是正确的,会话id本身绝不是安全的(尽管它有足够的字符来防止它容易的暴力攻击)。

然而,这就是SSL发挥作用的地方。如果您通过SSL提供站点服务,那么该cookie的内容在通过网络时将被加密,任何窥探者都无法窃取您的会话标识符(当然,除非您的站点对XSS攻击开放)。

一般情况下,会话数据存储在远程服务器内存中,每个会话将具有唯一的sessionId。在访问会话对象之前,总是为每个页面请求生成一个新的会话ID。客户端有一个sessionid的引用,它存储在cookie中。

所以你可以看到的只是一个引用,而不是真正的会话数据。

最新更新