使用纯客户端中的cookie就能完成会话保持,为什么需要服务端的session?session的运行机制会产生一个session_id的cookie给客户端保存,然后客户端下次请求的时候会带着这个session标识符给服务器,服务器根据这个来找session。不使用session同样可以实现会话保持,这一点是肯定的也许你会说安全性问题。但这就是我不解的。以下是我亲测的:登录某网站,然后复制该网站的cookie。在另一个浏览器中打开该网站(未登录状态)并填入复制好的cookie,刷新页面,网站变成了登录状态。(我不是指所有网站,只是个别网站)只要盗取了cookie,就能劫持session。同样的道理,如果单使用cookie,那么也是一样只要盗取了cookie就能做到冒充登录。既然盗取了cookie,无论是session还是cookie都一样会被冒充,那为什么需要session呢?看到很多关于session和cookie的文章都是泛泛而谈,有没有真正理解了这个原理的人告诉我这个小白菜鸟真正的答案啊。
1 回答
至尊宝的传说
TA贡献1789条经验 获得超10个赞
用session只需要在客户端保存一个id,实际上大量数据都是保存在服务端。如果全部用cookie,数据量大的时候客户端是没有那么多空间的。
cookie只是实现session的其中一种方案。虽然是最常用的,但并不是唯一的方法。
全部在客户端保存,服务端无法验证,这样伪造和仿冒会更加容易。(伪造一个随机的id很难,但伪造另一个用户名是很容易的)
全部保存在客户端,那么一旦被劫持,全部信息都会泄露
客户端数据量变大,网络传输的数据量也会变大
- 1 回答
- 0 关注
- 1090 浏览
添加回答
举报
0/150
提交
取消