有了cookie为什么需要session?

使用纯客户端中的cookie就能完成会话保持,为什么需要服务端的session?
  1. session的运行机制会产生一个session_id的cookie给客户端保存,然后客户端下次请求的时候会带着这个session标识符给服务器,服务器根据这个来找session。

  2. 不使用session同样可以实现会话保持,这一点是肯定的

  3. 也许你会说安全性问题。但这就是我不解的。以下是我亲测的:

登录某网站,然后复制该网站的cookie。在另一个浏览器中打开该网站(未登录状态)并填入复制好的cookie,刷新页面,网站变成了登录状态。(我不是指所有网站,只是个别网站)
只要盗取了cookie,就能劫持session。同样的道理,如果单使用cookie,那么也是一样只要盗取了cookie就能做到冒充登录。
既然盗取了cookie,无论是session还是cookie都一样会被冒充,那为什么需要session呢?看到很多关于session和cookie的文章都是泛泛而谈,有没有真正理解了这个原理的人告诉我这个小白菜鸟真正的答案啊。

https://img.mukewang.com/5bcff32c0001bd6f06330363.jpg

汪汪一只猫
浏览 1091回答 1
1回答

至尊宝的传说

用session只需要在客户端保存一个id,实际上大量数据都是保存在服务端。如果全部用cookie,数据量大的时候客户端是没有那么多空间的。cookie只是实现session的其中一种方案。虽然是最常用的,但并不是唯一的方法。全部在客户端保存,服务端无法验证,这样伪造和仿冒会更加容易。(伪造一个随机的id很难,但伪造另一个用户名是很容易的)全部保存在客户端,那么一旦被劫持,全部信息都会泄露客户端数据量变大,网络传输的数据量也会变大
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Html5