zoukankan      html  css  js  c++  java
  • Cookie、token、session的区别是什么?


    背景:

    最近在总结一些容易理解混淆的概念,之前面试的时候提到过,我觉得也说不清楚,这两天项目做接口测试发现用的cookie而不是之前的token,于是总结一下,便于以后用到的时候再阅读以及分享给需要的人。后期如果发现总结不对会持续更新

    从安全性优先级来说:

    1、优先级

    Cookie<session<token

    2、 安全性

    Cookie:

    ①cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session

    ②HTTP是一种无状态协议,服务器没有办法单单从网络连接上面知道访问者的身份,为了解决这个问题,就诞生了Cookie

    Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie

    客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务器还可以根据需要修改Cookie的内容。

    session:

    ①     session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie

    ②     关闭浏览器不会关闭session,它具失效日期,失效后服务器认为客户端停止了活动,并删除session以节省空间

    Token:

    ①  作为身份认证 token安全性比session好,因为每个请求都有签名还能防止监听以及重放攻击

    ②  Oauth token提供的是认证和授权,认证针对用户,授权针对app

    ③  token的生成一般是采用uuid保证唯一性,当用户登录时为其生成唯一的token,存储一般保存在数据库中。token过期时间采用把token二次保存在cookie或session里面,根据cookie和session的过期时间去维护token的过期时间

    开发过程举例:

    案例一:

    项目中我们的用户数据可能需要和第三方共享,或允许第三方调用我们的API则用token

    案例二:

    公司内部的网站,自己的App,就可以用cookie、session

    一般来说我们可以将登录信息放在session,其他信息保存在cookie

    案例三:

    观察微信、支付宝登录接口用的就是token

  • 相关阅读:
    November 07th, 2017 Week 45th Tuesday
    November 06th, 2017 Week 45th Monday
    November 05th, 2017 Week 45th Sunday
    November 04th, 2017 Week 44th Saturday
    November 03rd, 2017 Week 44th Friday
    Asp.net core 学习笔记 ( Area and Feature folder structure 文件结构 )
    图片方向 image orientation Exif
    Asp.net core 学习笔记 ( Router 路由 )
    Asp.net core 学习笔记 ( Configuration 配置 )
    qrcode render 二维码扫描读取
  • 原文地址:https://www.cnblogs.com/yoyoblogs/p/11557918.html
Copyright © 2011-2022 走看看