首页 > 其他分享 >如何绕过登录鉴权直接测试后端接口

如何绕过登录鉴权直接测试后端接口

时间:2023-03-01 20:24:59浏览次数:45  
标签:存储 登录 JWT 用户 接口 Token Session Cookie 鉴权

目录

  1. 回顾 Cookie、Session 和 Token
  2. 携带 Cookie 测试
  3. 携带 Token 测试

一、回顾 Cookie、Session 和 Token

Cookie 是一段存储在浏览器端的文本数据,Cookie 中的内容会随着 http 请求一起发送到服务器端。

(2) Session

Session 是存储在服务器端的一组数据,网站可以采取 Session 的机制来验证用户身份,通常会把 SessionID 存储在 Cookie 中。

(3) Token

Token 是一个字符串,Token 的特点就是紧凑并且安全,它可以存储在 Cookie、localStorage 等里面,有一种用户认证机制为 json web token(JWT),主要是在网络应用中传递一些小批量的安全的数据时使用。

(4) 登录机制

a. Cookie-Session 机制

用户输入用户名、密码后,后台服务在 Session 中设置登录状态和用户的一些基本信息,然后将响应返回到浏览器,并设置 Cookie。下次用户在这个浏览器中,再次访问服务时,请求中会带上这个 Cookie,服务端根据这个 Cookie 就能找到对应的 Session,从 Session 中取得用户的信息,从而维持了用户的登录状态。

b. 利用用户验证机制 JWT + Token

JWT 主要分为三部分:header.preload.signature(x.y.z)。JWT 主要应用在身份认证,当用户登录系统之后,后台会返回一个 JWT 给浏览器端,用户只需要本地保存这个 Token 即可。


Token 通常存储在存储在 Cookie、localStorage 里面(如果是 app,就是用自己的存储机制来存储),用户请求后台资源的时候每次都要带上 Token,后台会对这个 Token 进行验证。JWT 也可以用于信息交换,由于它的信息是经过签名的,可以确保发送的信息是真实的,因此可以用于小批量的数据交换。

服务端只要保证唯一密钥不丢失,每次都是临时通过 header 和 payload 配合密钥去生成 signature 验证用户身份的。其实最重要的也就是 signature,但是由于密钥只在服务端,如果本地 Token 不泄露,其他人无法根据 header 和 payload 生成正确的 signature,也无法通过修改 payload 去假冒其他用户或者篡改该用户的其他信息。

c. 对比

  • Cookie + Session:Sessionid 是存在服务器内存里,Session 保存的用户信息存在服务器内存或数据库,Cookie 接收保存服务器发来的 Sessionid,然后每次浏览器发送请求就会带上 Cookie 的数据。

  • Token(存储在 Cookie 或 localstorage 中)+ JWT:Token 生成于服务端(加密),存储在客户端,服务端不用存储,用户后面每次登录都携带首次都登录生成的 Token 字符串用于验证,能做到这点,关键就是 Token 使用的某种算法根据用户签名和其它一些信息生成的令牌信息是一致的,可以验证(解密)通过。避免了大量 Session 对象的存储带来的内存消耗,和各服务器之间 Session 的复制或者专门用于存储 Session 的服务器宕机带来的问题(服务器压力大)。


三、携带 Token 测试

1 获取登录的 Token

2 将 Token 放到请求头中

请求头的名字可根据自身自定义的来设置


发送请求


标签:存储,登录,JWT,用户,接口,Token,Session,Cookie,鉴权
From: https://www.cnblogs.com/sevenkiki/p/17169577.html

相关文章

  • 安全SSH设置免密码登录
    SSH类似于Telnet,可以用来远程操控,但是这种方式走的是明文,这样不安全。安全shell是加过密的,这样就保证安全。1.执行命令,产生秘钥命令:ssh-keygen-t rsa,一直回车,产生两个......
  • 微信小程序:登录页面模板
    微信小程序:登录页面模板wxml:<viewclass="v1"><!--v2父容器子view使用绝对布局--><viewclass="v2"><viewclass="dltext">登录</view><!--......
  • 调用接口获得token_Postman篇--如何进行参数关联
    具体操作如下:1、点击右上角的小眼睛,在弹出的页面中输入环境变量名称对于需要关联获得的token值,初始值不填2.如下接口能够获取到token,在Tests中获取请求值,输入以下代码(......
  • 表单 下拉 接口啥的
    exportdefault{data(){return{searchForm:{regionCode:"",type:"",level:"",startTime:this.$route.que......
  • 什么是API接口,具体是什么意思?
    说到API,往往是和SDK放在一起的。​​什么叫API​​,看一下餐厅里怎么点餐的就行了。到了饭店,喊一场服务员,点餐。服务员拿出来菜单给你看,你点什么,她在小本本上记什么。点好了......
  • 【自动化测试】接口自动化测试工具有哪些?
    Jmeterjmeter完成接口脚本,Ant完成脚本执行并收集结果生成报告,最后利用jenkins完成脚本的自动集成运行。Postman或者newmanjava+httpclient,通过代码实现Java+Resta......
  • 基础方式获取接口token鉴权码
      运行结果: 代码:classTestLoginApi:access_token=""session=requests.session()#通过session去关联deftest_get_token(self):print......
  • 登录功能_实现_前台页面 与登录功能_姓名提示
    登录功能_实现_前台页面$(function(){//1.给登录按钮绑定点击事件$("#btn_sub").click(function(){//2.发......
  • 全志 芯片 Linux MIPI CSI摄像头接口开发指南 VIN DVP CSI MIPI V4l2
    1前言1.1文档简介介绍VIN(videoinput)驱动配置,API接口和上层使用方法。1.2目标读者camera驱动开发、维护人员和应用开发人员。1.3适用范围​表1-1:适用产品......
  • SSH免密登录
    服务端为ubuntu,客户端为win10自带ssh命令行使用客户端ssh命令行生成公私钥,命令为ssh-keygen生成的id_rsa.pub就是公钥,一般在\Users<用户名>.ssh目录下将公钥的全部内容......