一、Cookie鉴权
http协议:无连接、无状态,请求无关联、独立
京东:登录、搜商品、下单、支付、评论

什么是Cookie?
cookie是在服务器产生的存储在客户端的一小段文本信息,格式是字典,键值对。

Cookie的分类
会话级:保存内存,当浏览器关闭就会丢失。
持久化:保存硬盘,只有当失效时间到了才会被清除。

如何查看Cookie
name、value、domain、path、expries.size

Cookie如何实现鉴权(原理)
当客户端第一次访问服务器时,那么服务器就会产生Cookie,然后通过响应头的方式在Set-Cookie传输到客户端,客户端从第2-N请求都会自动带上Cookie

致命弱点:cookie保存在客户端,对于敏感信息用户名、密码、身份证安全

"""
@Project: pytestDemo-master
@Description:Cookie鉴权
@Time: 2022/4/13 15:45
@Author:MING
"""
import re
import unittest
import requestsclass Cookie_Login(unittest.TestCase):csrf_token = ""csrf_cookie = ""# 第一次访问网站def test_01_index(self):url = 'http://47.107.116.139/phpwind'res = requests.get(url=url)# 通过正则表达式获取到csrf_token的值value = re.search('name="csrf_token" value="(.+?)"', res.text)Cookie_Login.csrf_token = value.group(1)  # 获取csrf_token值Cookie_Login.csrf_cookie = res.cookies  # 获取cookieprint(value)# 登录def test_02_login(self):url = "http://47.107.116.139/phpwind/index.php?m=u&c=login&a=dorun"data = {"username":"123456","password": "123456","csrf_token": Cookie_Login.csrf_token,"backurl": "http://47.107.116.139/phpwind/","invite": ""}headers = {"Accept":"application/json,text/javascript, /; q=0.01","X-Requested-with":"XMLHttpRequest"}res = requests.post(url=url,data=data,headers=headers,cookies=Cookie_Login.csrf_cookie)print(res.text)返回成功:
{"referer":"http%3A%2F%2F47.107.116.139%2Fphpwind%2Findex.php%3Fm%3Du%26c%3Dlogin%26a%3Dwelcome%26_statu%3DQmdHbEJmREJXR0ZGbUluY1QwMDZLNGozOHVaQmkxJTJGSTJVOG5jMnZwalFteHpwQ3h0T2pRNVZPSDhhS0d4ZzZmfGh0dHA6Ly80Ny4xMDcuMTE2LjEzOS9waHB3aW5kL3w","refresh":false,"state":"success","data":"","html":"","message":[""],"__error":""}

二、Session鉴权
当用户第一次访问服务器时,然后在服务器保存一个sessionid,这个sessionid是经过加密然后通过cookie把这sessionid保存到客户端,然后请求服务器的时候只发送sessionid。

致命弱点:解决了cookie不安全的问题,但是随着有出息了新的问题,当用户量特别大的时候导致服务器奔溃。

服务器集群:
淘宝:10万用户,10亿sessionid,100000服务器=10亿/100000?

请求IP捆绑,session复制,单点登录

"""
@Project: pytestDemo-master
@Description: Session鉴权
@Time: 2022/4/13 15:45
@Author:MING
"""import re
import unittest
import requestsclass Session_Login(unittest.TestCase):csrf_token = ""session = requests.session()  # 获取session# 第一次访问网站def test_01_index(self):url = 'http://47.107.116.139/phpwind'res = Session_Login.session.get(url=url)# 通过正则表达式获取到csrf_token的值value = re.search('name="csrf_token" value="(.+?)"', res.text)Session_Login.csrf_token = value.group(1)  # 获取csrf_token值print(Session_Login.csrf_token)# 登录def test_02_login(self):url = "http://47.107.116.139/phpwind/index.php?m=u&c=login&a=dorun"data = {"username":"sa1213","password": "123456","csrf_token": Session_Login.csrf_token,"backurl": "http://47.107.116.139/phpwind/","invite": ""}headers = {"Accept":"application/json,text/javascript, /; q=0.01","X-Requested-with":"XMLHttpRequest"}res = Session_Login.session.post(url=url,data=data,headers=headers)print(res.text)
返回成功:{"referer":"http%3A%2F%2F47.107.116.139%2Fphpwind%2Findex.php%3Fm%3Du%26c%3Dlogin%26a%3Dwelcome%26_statu%3DQmdHbEJmREJXR0ZGbUluY1QwMDZLNGozOHVaQmkxJTJGSTJVOG5jMnZwalFteHpwQ3h0T2pRNVIzUnVTNHRvMkxifGh0dHA6Ly80Ny4xMDcuMTE2LjEzOS9waHB3aW5kL3w","refresh":false,"state":"success","data":"","html":"","message":[""],"__error":""}

三、token鉴权
当一个用户登录之后,就给他发送一个token令牌,下一次用户再次请求的时候,只需要带上这个token令牌,
token可以通过抓包抓取。

加密:
对称加密:DES,AES
双钥加密:RSA
之加密不解密:MD5,SHA

token的分类:
access_token: 有时间限制,限制在15分钟
refresh_token: 一般15天

面试题:cookie,session,token鉴权的相同点和区别?
相同点:都是用于做鉴权的,都是服务器产生的。
区别:
1.cookie存储在客户端,session存储在服务端,session相对来说比较安全
2.session存在服务器内存,token存在服务器的文件或者数据库中,token的好处是比session
更省服务器资源。token只需要在服务解密即可。

出现了新的问题:第三方支付,银行,金融项目,安全的要求更高。

接口签名:Sign

"""
@Project: pytestDemo-master
@Description: Cookie鉴权
@Time: 2022/4/13 15:45
@Author:MING
"""
import re
import unittest
import requestsclass Token_Login(unittest.TestCase):csrf_token = ""csrf_cookie = ""# 第一次访问网站def test_01_index(self):url = 'http://47.107.116.139/phpwind'res = requests.get(url=url)# 通过正则表达式获取到csrf_token的值value = re.search('name="csrf_token" value="(.+?)"', res.text)Token_Login.csrf_token = value.group(1)  # 获取csrf_token值Token_Login.csrf_cookie = res.cookies  # 获取cookieprint(value)# 登录def test_02_login(self):url = "http://47.107.116.139/phpwind/index.php?m=u&c=login&a=dorun"data = {"username":"sa1213","password": "123456","csrf_token": Token_Login.csrf_token,"backurl": "http://47.107.116.139/phpwind/","invite": ""}headers = {"Accept":"application/json,text/javascript, /; q=0.01","X-Requested-with":"XMLHttpRequest"}res = requests.post(url=url,data=data,headers=headers,cookies=Token_Login.csrf_cookie)print(res.text)

接口自动化-Cookie、Session、Token鉴定解决方案相关推荐

  1. 2、cookie session token详解

    cookie session token详解 转自:http://www.cnblogs.com/moyand/ 发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, ...

  2. Cookie Session Token 与 JWT 解析

    首先先了解一些关键词 认证.授权与凭证 什么是认证(Authentication)? 通俗地讲就是 验证当前用户的身份是否合法的过程,即你是谁?证明"你是你自己"(比如:你每天上下 ...

  3. cookie session token 之间的区别

    cookie 和session的区别 1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 ...

  4. cookie session token区别_彻底理解cookie,session,token

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者: 墨颜丶 cnblogs.com/moyand/p/9047978.html 发展史 ...

  5. cookie session token区别_cookie、session与token的真正区别

    发展史 1.很久很久以前,Web 基本上就是文档的浏览而已, 既然是浏览,作为服务器, 不需要记录谁在某一段时间里都浏览了什么文档,每次请求都是一个新的HTTP协议, 就是请求加响应, 尤其是我不用记 ...

  6. 熬夜彻底搞懂Cookie Session Token JWT

    一切的根源就是因为 HTTP 是一个无状态的协议. HTTP 是一个无状态的协议 什么是无状态呢?就是说这一次请求和上一次请求是没有任何关系的,互不认识的,没有关联的. 看过电影<夏洛特烦恼&g ...

  7. 大剑无锋之浅析Cookie/Session/Token

    Cookie Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式.Cookie存储的数据量有限,且都是保存在客户端浏览器中.不同的浏览器有不同的存储大 ...

  8. 用pytest.fixture处理接口自动化跨文件token传参

    大部分的接口都需要在headers中传入token参数,原来的方式是在case文件的setup中调用gettoken方法拿到token,存入一个变量,然后在每个case中使用这个token变量 但后面 ...

  9. 测试面试题:cookie/session/token 分别表示什么意思,有什么区别?

    测试面试必问:   token,cookie,session 有什么区别? 1.解释 1>Cookie cookie 是一个非常具体的东西,指的就是浏览器里面能永久存储的一种数据,仅仅是浏览器实 ...

  10. 复习深入笔记02:魔法方法/cookie,session,token/异常

    魔法方法 对象生成 1.先调用__new__方法,生成空对象.控制对象生成. 2.当执行"对象=类名(name=lqz)",触发类的__init__()

最新文章

  1. 待处理,待学习(每日更新)
  2. 宁波医院计算机试题及答案,(宁波市第25届小学生计算机程序设计竞赛试题及答案.doc...
  3. 福利再度来袭,R语言数据分析书籍值得你拥有
  4. android辅助功能实现群发,Android 8.0实现发送通知的方法
  5. click Arguments
  6. Linux命令之查看文件内容
  7. python string length_自学Python:第四篇字符串
  8. c#正则表达式应用实例
  9. win7桌面运行html,手把手教你win7电脑如何运行config的操作教程
  10. Javascript第六章JavaScript用new创建对象第一课
  11. linux内核分析作业8:理解进程调度时机跟踪分析进程调度与进程切换的过程
  12. Cisco ASA 9.17.1 Full ( bin, ova, qcow2, SPA, vhdx ) 下载 - 思科防火墙
  13. ps快捷图标在哪个文件夹_ps安装包在哪个文件夹
  14. 有赞搜索系统的技术内幕
  15. CSS解决连续英文字母或连续数字不能自动换行
  16. CSS Cascading Style Sheet 级联样式表1
  17. 深度学习(一):什么是深度学习
  18. 和99.9%的人的认知完全相反的富人思维
  19. 51单片机驱动ESP8266
  20. 外汇市场百年风云演变,当代“钱”途之选就看EBC金融集团

热门文章

  1. 在vs2010中运行guge.cpp(SkeletonDepth)的时候程序是网上的,可是总是提示我没有KinectUNI.lib。
  2. 二元二次方程例题_二元二次方程组练习题及答案
  3. 鸿蒙系统反应慢,系统优化非常的关键 鸿蒙2.0和iOS14的反应速度测试
  4. Newton's Dark Secrets《牛顿探索》
  5. [GIS教程] 5.2 空间数据管理 | SDE空间数据引擎
  6. Ubuntu 16.04 安装运行 ROVIO odometry
  7. github优秀代码锦集
  8. [css绘制图形:扑克牌花色] 红心、黑桃、方块、梅花
  9. SOLD格雷母线定位系统产品说明
  10. 苹果为什么不能开无线网络连接服务器,苹果手机不能上网怎么办 iPhone网络故障解决【详解】...