【HTTP】Cookie、Session、Token以及Cookie优化

  • Cookie、Session、Token
  • Cookie优化

Cookie、Session、Token

在开始介绍Cookie安全之前,我们先来了解一下实现授权的方式。

在登录功能中,为了记住登录成功后的信息,在客户端,我们通常会使用Cookie来记录,但是,由于Cookie是不可跨域的,只能访问对应的域名,比如说:a网站发送请求到b网站,携带的是b网站的Cookie。还处于a网站时携带的是a网站的Cookie,到了b网站,就携带b网站的Cookie。

在服务端,使用session来记录会话,sessionId会被保存在Cookie中。

Cookie与session之间的关系:

【HTTP】Cookie、Session、Token以及Cookie优化_第1张图片

token:

【HTTP】Cookie、Session、Token以及Cookie优化_第2张图片

token是服务端发送给客户端的一串加密字符串。将其传给客户端之后保存在Cookie中,每次请求都需要携带token凭证,它在服务器端占得大小其实是比较小的,因为可以使用Redis来存储token,这样完全没有session占用的空间大,还能减轻服务器的压力。token是相对安全的。

CSRF是什么?

【HTTP】Cookie、Session、Token以及Cookie优化_第3张图片

在一个授予了凭证的网站a点击到了危险网站,危险网站其实是指向a的,而你在a网站是登录转态,由于Cookie是不可以跨域的,因此危险网站指向a的这个过程到了a,Cookie就是已登录转态,这时候进行一些危险的操作就很危险了。因此我们最好不要直接使用Cookie。

Cookie优化

从安全方面,尽量使用token,进行会话保持。

从http请求的角度,尽可能让cookie的信息少一点,从而使得http请求的体积更小。

由于cookie的一个常用的作用,是保持用户会话的,所以仅仅在接口请求的时候,使用cookie。

加载其他资源,比如图片、js、css文件等等,可以托管到CDN上,这样就不会携带cookie,CDN的策略也使得资源加载更快。在我的项目中使用的就是七牛云存储图片。

你可能感兴趣的:(HTTP,http,前端,服务器)