都说Session是只认id不认人,那么如果我从cookie中找出session id,然后把它附加在URL上,然后在该Session id所代表的会话结束前发送给服务器,是不是就相当于侵入了一个会话了呢?
比如,可能某个用户经过了验证然后进入了一个Session,而我利用这种方式绕过了验证,直接访问本来需要授权的资源?
我知道这是不可能的假设,但是想知道背后的原理。
thanks !
[color=blue]
[b]sessionId是存在于客户端的cookie或者URL上,它是服务器用了识别客户端身份的一个标识。
如果你使用了一个已经经过验证的sessionid,并且该session并没有超时,你将sessionid附件在URL参数中,应该是可以访问到受保护的资源的。
注意,“应该是”!
如果Server端采用了更严格的安全控制机制,比如:
1、检测你的HTTP的referer属性,查看你的本次访问来自于哪里;
2、检测你的本机端口(不同的浏览器,是端口不同的);
等方式,这种附件sessionId的方法,会受到一定的限制。[/b][/color]
附加在浏览器上是为参数传到后台,而后台的道Sessionid是从cookie中去得,应该是没有影响的。
你的表单提交,付在URL后面的参数还不是要你解析,它会自动赋值?,
所以没有影响.
楼上所言极是。
sessionID只是一个cookie中的值,在并不安全的http协议中完全可以伪造。
因此服务端的验证就极其重要,比如具体的Session信息中包含了ip、user-agent等信息的数据摘要,每次接收到http请求的时候做验证,这样就避免了不同ip的session伪造。
这只是一个例子,要想更多的了解,需要仔细看下HTTP协议。