koa框架7 基础入门之cookie、session
cookie 身份认证
cookie的起源本身就是因为http是一种单向性的传输,服务器和浏览器之间没有联系用的东西,如服务器无法辨别正在浏览的是谁,他有vip吗?所以就想出在浏览器存一个简短的数据,每次浏览器会将这个数据发送给服务器,服务器通过这个判断这个人是谁。
但是现在来说,这种方式存在了一些问题:
- cookie容量很小,不能超过32kb,但实际上都不能完全达到32kb,因为cookie是放在http信息的header上的,而header最大也只有32kb,他除了cookie还要存放其他信息。
- 安全性,存放在浏览器的数据都不安全,客户端可以直接查看,修改,伪造
cookie一般是由服务器set-cookie方法给浏览器种一个cookie,然后每次浏览器则在每次请求时附带这个cookie给服务器。
session
由于cookie的一些问题,衍生出基于cookie的一种存放在服务器的数据方式:session。
他的原理是,浏览器发送请求到服务器,服务器判断是否有cookie,没有则种一个唯一的id内容的cookie给浏览器。服务器自身也会创建一个基于这个id的session存储。
然后浏览器每次都会发送这个id给服务器,服务器就对通过这个id来读取存放在服务器上的session数据。
但session相对来说,也有一些问题:
篡改,如果有人获得了别人的id,那他也可以在本地伪造一个,甚至修改自己的id内容为别人的,这样他就获取了被人的数据。
一般这种方式我们可以使用签名
猜测,比如你生成的id范围很小,那么就很容易被人猜测到。
我们可以使用uuid这种唯一性的生成id方式。增加一些多余的随机字符掩盖。
劫持,通过一些方式劫持用户信息,从而利用别人的用户信息登录
这种我们可以利用多因素校验,比如手机短信验证这些
其他身份认证方式
其原理都是存放一个身份id,怎么存,怎么读,怎么发送,都是session的变种。
比如 token
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
暂无评论数据