当前位置: 首页 > news >正文

经典问题——华测

1、没有 token 的情况下,接口的自动化测试可以通过哪些方式处理?

  1. 确认接口是否有其他认证机制:
  • 如果使用的是 Basic Auth、Session ID 等传统方式,可以在请求中直接传递相关认证信息(如用户名和密码、Cookie 等)。
  1. 如果接口没有任何认证机制:
  • 确认测试环境是否可以直接访问接口。没有认证可能是因为项目运行在封闭的内网环境,安全性依赖于网络隔离。如果如此,可以直接进行接口调用。
  1. 模拟真实请求:
  • 通过抓包工具(如 Fiddler、Wireshark、Postman)确认接口调用的请求头和参数,并在自动化测试中复现这些请求。
  1. 利用固定的测试账户:
  • 若接口允许用测试账户登录,则在自动化测试中以此账户的固定凭据来发送请求。
  1. 加强环境隔离:
  • 如果生产环境对安全性有要求,建议限制测试脚本的调用权限,只允许在测试环境中使用。
  1. 自动化工具选择:
  • 使用合适的自动化测试工具(如 JMeter、Rest Assured、Postman Collection Runner 等)模拟请求并验证响应。

无 token 的情况下,确保接口调用的认证机制(如果存在)正确实现即可;若没有认证机制,则重点在于验证功能逻辑而非安全性。

2、什么是 Token?

Token 是一种认证凭证,用于在客户端和服务器之间进行身份验证。它通常是一串加密的字符串,由服务器生成并返回给客户端,客户端在后续请求中携带 Token,服务器通过验证 Token 来判断请求的合法性。

Token 的主要功能:

  1. 身份验证:确认请求者的身份。
  2. 权限验证:确认请求者是否有权限访问指定资源。
  3. 防止重复登录:避免频繁验证用户名和密码。

Token 的典型内容:

内容部分描述
用户身份信息可能包括用户 ID、用户名等,用于标识用户身份。
签发时间Token 的生成时间,用于判断是否过期。
过期时间Token 的有效期,超过该时间后需要重新登录或刷新 Token。
权限信息描述用户的角色或权限范围,用于控制资源访问。
随机数/唯一标识符防止 Token 被重放攻击(Replay Attack)。
签名信息使用服务器密钥签名,确保 Token 内容未被篡改,可以通过加密算法(如 HMAC、RSA)验证真实性。

Token 的常见类型:

类型特点
JWT(JSON Web Token)一种标准化的 Token,基于 JSON 格式,包含 Header、Payload 和 Signature 三部分,支持跨语言验证。
Opaque Token不透明的 Token,通常是随机字符串,所有验证和信息存储在服务器端。
OAuth Token用于授权协议(如 OAuth2)的 Token,可以分为访问令牌(Access Token)和刷新令牌(Refresh Token)。

3、什么是 Cookies?

Cookies 是一种由服务器生成并存储在客户端浏览器中的小型数据文件,用于保存用户状态和信息。它可以帮助服务器识别用户、保存用户会话信息以及实现个性化功能。

Cookies 的特点:

  1. 存储位置:存储在客户端(通常是浏览器)中。
  2. 大小限制:通常每个 Cookie 最大为 4KB,一个域名最多可存储 20 个 Cookie(不同浏览器略有差异)。
  3. 生命周期
  • 会话 Cookie:浏览器关闭后即失效。
  • 持久化 Cookie:通过 ExpiresMax-Age 属性设置到期时间,存储在客户端直到到期或手动删除。
  1. 作用范围:可以通过 DomainPath 指定 Cookie 的适用范围。
  2. 安全性:通过 Secure 属性(仅通过 HTTPS 传输)和 HttpOnly 属性(禁止客户端脚本访问)提高安全性。

Cookies 的组成:

字段描述
名称(Name)Cookie 的键,用于标识存储的数据。
值(Value)Cookie 的值,存储具体信息(如 Session ID、用户偏好)。
域(Domain)指定 Cookie 的适用域名,默认是当前域名。
路径(Path)指定 Cookie 在域名下的适用路径。
有效期(Expires/Max-Age)指定 Cookie 的过期时间。
安全(Secure)如果设置,则 Cookie 仅通过 HTTPS 传输。
HttpOnly如果设置,则禁止通过 JavaScript 访问此 Cookie,增强安全性。
SameSite限制跨站点请求时是否携带 Cookie,值为 StrictLaxNone

Cookies 的主要用途:

  1. 会话管理:如保存用户登录状态、购物车信息。
  2. 个性化设置:如保存语言偏好、主题样式。
  3. 跟踪与分析:用于记录用户行为,支持广告投放和网站分析。

Cookies 的优缺点:

优点缺点
能在客户端和服务器间快速传递状态信息。容量有限,仅适合存储少量数据。
支持持久化存储,可以保存用户偏好或会话信息。安全性较低,可能被篡改或盗取(如 XSS 攻击)。
通过 HttpOnlySecure 等属性可以提高安全性。对用户隐私存在潜在威胁,可能被用于跨站点跟踪。
被广泛支持,几乎所有浏览器都兼容。每次请求都会自动携带,可能造成不必要的带宽浪费。

4、什么是 Session?

Session 是一种服务器端机制,用于在用户与服务器交互的多个请求之间保持用户的状态和数据。它通过在服务器端存储会话数据,并在客户端和服务器之间交换标识符(通常是 Session ID)来实现状态管理。

Session 的特点:

  1. 存储位置:会话数据保存在服务器端,客户端仅保存 Session ID。
  2. 标识唯一性:每个 Session 都有唯一的标识符(Session ID)。
  3. 生命周期:默认情况下,Session 会在用户关闭浏览器或 Session 超时时结束,可以通过配置延长或缩短生命周期。
  4. 安全性:比 Cookies 更安全,敏感数据不直接存储在客户端。
  5. 状态管理:常用于保持用户登录状态、购物车数据等。

Session 的组成:

组成部分描述
Session ID一个唯一标识符,用于关联客户端与服务器端的会话数据。
会话数据服务器端存储的具体信息(如用户身份、购物车、权限信息)。
生命周期配置指定会话的有效时间,通常可以通过服务器配置文件设置。

Session 的实现过程:

  1. 创建:用户首次访问服务器时,服务器生成一个唯一的 Session ID,并将其存储在服务器中,同时通过 Cookie、URL 重写或隐藏表单字段返回给客户端。
  2. 标识:客户端在后续请求中携带该 Session ID,服务器根据 Session ID 找到对应的会话数据。
  3. 使用:服务器利用会话数据为用户提供个性化服务。
  4. 销毁:会话到期或用户主动登出时,服务器删除会话数据。

Session 和 Cookies 的比较:

对比项SessionCookies
存储位置数据存储在服务器端,客户端仅存储 Session ID。数据直接存储在客户端。
安全性更安全,敏感信息不暴露给客户端。安全性较低,数据可能被篡改或窃取。
数据大小可存储较大数据量,取决于服务器配置。通常限制为 4KB 以内。
性能影响服务器存储需要占用更多资源,影响性能。不占用服务器存储资源,但每次请求都会传输数据。
生命周期通常与会话相关,可通过服务器设置有效期。ExpiresMax-Age 属性决定。

Session 的常见用途:

  1. 用户身份验证:在用户登录后,存储其身份信息。
  2. 购物车功能:临时保存用户选购的商品。
  3. 跨请求状态共享:为同一个用户的多个请求提供一致的数据状态。
  4. 权限管理:存储用户角色和访问权限信息。

凡是过去,皆为序章;凡是未来,皆有可期。

相关文章:

经典问题——华测

1、没有 token 的情况下,接口的自动化测试可以通过哪些方式处理? 确认接口是否有其他认证机制: 如果使用的是 Basic Auth、Session ID 等传统方式,可以在请求中直接传递相关认证信息(如用户名和密码、Cookie 等&…...

【视觉惯性SLAM:十二、ORB-SLAM2:局部建图线程】

局部建图线程是ORB-SLAM2的核心模块之一,其主要任务是以局部关键帧为中心,维护和优化局部地图,并不断生成新的地图点,使得地图能够逐渐扩展和保持鲁棒性。以下将从具体的几个方面介绍ORB-SLAM2中的局部建图线程,包括处…...

Spring Boot对访问密钥加解密——HMAC-SHA256

HMAC-SHA256 简介 HMAC-SHA256 是一种基于 哈希函数 的消息认证码(Message Authentication Code, MAC),它结合了哈希算法(如 SHA-256)和一个密钥,用于验证消息的完整性和真实性。 HMAC 是 “Hash-based M…...

Linux高级--2.4.2 linux TCP 系列操作函数 -- 深层理解

一、操作函数简介 在 Linux 中,TCP(传输控制协议)操作涉及多种系统调用和函数,通常用来创建套接字、连接、发送/接收数据、关闭连接等。以下是一些常用的 TCP 操作函数和它们的简要说明: 1. socket() 函数原型: int…...

小程序租赁系统开发指南与实现策略

内容概要 在如今这个快节奏的时代,小程序租赁系统的开发正逐渐成为许多商家提升服务质量与效率的重要选择。在设计这样一个系统时,首先要明白它的核心目标:便捷、安全。用户希望在最短的时间内找到需要的物品,而商家则希望通过这…...

威胁建模助力企业“建防御 抓运营”

本文为安全知识图谱技术白皮书《践行安全知识图谱,携手迈进认知智能》精华解读系列第六篇——威胁建模技术,重点介绍基于知识图谱的威胁建模应用。 如何做好威胁建模 如今,随着技术的变化,攻防技术不对等和攻防双方关注面不同&a…...

soular使用教程

用 soular 配置你的组织,工作更高效!以下是快速上手的简单步骤:  1. 账号管理 可以对账号信息进行多方面管理,包括分配不同的部门、用户组等,从而确保账号权限和职责的清晰分配。  1.1 用…...

WPF编程excel表格操作

WPF编程excel表格操作 摘要NPOI安装封装代码测试代码 摘要 Excel操作几种方式 使用开源库NPOI(常用,操作丰富)使用Microsoft.Office.Interop.Excel COM组件(兼容性问题)使用OpenXml(效率高)使用OleDb(过时) NPOI安装 封装代码 using System; using System.IO; u…...

银河麒麟操作系统安装达梦数据库(超详细)

目录 引言1. 前期准备1.1 安装麒麟系统1.2 下载达梦数据库安装包(DM8)1.3 上传安装包到麒麟系统1.4 挂载安装包(iso)文件1.5 配置安装用户和组1.6 创建安装路径及修改权限1.7 设置临时安装目录 2. 安装达梦数据库(DM8&…...

SpringCloudAlibaba实战入门之路由网关Gateway初体验(十一)

Spring Cloud 原先整合 Zuul 作为网关组件,Zuul 由 Netflix 公司提供的,现在已经不维护了。后面 Netflix 公司又出来了一个 Zuul2.0 网关,但由于一直没有发布稳定版本,所以 Spring Cloud 等不及了就自己推出一个网关,已经不打算整合 zuul2.0 了。 一、什么是网关 1、顾明…...

struct sock

struct sock是套接口在网络层的表示,它包含了套接字在网络通信中的各种状态和参数。以下是对struct sock的详细解析: 定义与位置 struct sock通常在内核源代码的某个头文件中定义,例如include/net/sock.h。它是网络通信中非常重要的数据结构,用于在内核中表示一个套接字。…...

77、将adaface的mtcnn模型npy文件转成atlas310p模型,并进行推理

基本思想:将adaface的mtcnn模型npy文件转成atlas310p模型进行推理。同时比对结果 ubuntu@ubuntu:~$ git clone https://github.com/mk-minchul/AdaFace.git Cloning into AdaFace... remote: Enumerating objects: 236, done. remote: Counting objects: 100% (109/109), don…...

Docker应用-项目部署及DockerCompose

文章目录 Docker应用-项目部署1. 项目部署-后端1.1 修改配置1.2 项目打包1.3 编写Dockerfile1.4 创建镜像1.5 创建并运行容器1.6 测试 2. 项目部署-前端2.1 html前端静态目录2.2 nginx.config编写2.3 部署宿主机服务器2.4 创建容器并挂载2.5 测试 3. DockerCompose3.1 基本语法…...

Java重要面试名词整理(十一):网络编程

文章目录 概念网络协议计算机网络是什么?定义和分类计算机网络发展简史 计算机网络体系结构OSI七层模型TCP/IP模型TCP/IP协议族IP、TCP和UDPARPTCP/IP网络传输中的数据地址和端口号**端口号的确定** TCP特性TCP三次握手TCP四次挥手(分手) UDP…...

html + css 淘宝网实战

之前有小伙伴说,淘宝那么牛逼你会写代码,能帮我做一个一样的淘宝网站吗,好呀,看我接下来如何给你做一个淘宝首页。hahh,开个玩笑。。。学习而已。 在进行html css编写之前 先了解下网页的组成和网页元素的尺寸吧 1.网页的组成 …...

Linux打包压缩解压 --- 打包tar命令(归档)

一、tar命令打包(归档) 在 Linux 中,tar 是一种用于归档文件的工具。通过此命令可将多个文件或目录组合成单个档案文件,可以搭配gzip和bzip等压缩命令让文件体积更小,在配置服务器前备份服务器现有配置,会…...

流架构的读书笔记(2)

流架构的读书笔记(2) 一、建模工具之一沃德利地图 推测技术的发展,交流和辩论思想的最有力的方法是沃德利地图 沃德利地图的制作步骤 1确定范围和用户需求 2确定满足用户需求所需的组件 3在一条范围从全新到被人们接受的演进轴上评估这些组成 部分的演…...

Xshell远程连接提示“找不到匹配的host key算法“问题处理

1.问题描述 Xshell连接远程服务器node1,提示找不到匹配的host key算法;但是用同机房的其他服务器可以使用ssh连接到这个node1机器; 2.问题处理 问题处理尝试了很多方法,可能大家遇到的有所不同,可以尝试一下本文中的…...

Qt C++关于QSpinBox、QDoubleSpinBox的输入框内鼠标点击事件无法触发截取信号的解决办法

项目场景: 基于Qt C 开发鼠标点击spinbox的触发任务时,我基于QSpinBox继承开发了一个新类,用于弹出自定义键盘。 问题描述 在鼠标点击spinbox的边框以及上下键的时候,能够触发覆写的mousePressEvent,但是一旦鼠标点击…...

【ES6复习笔记】Symbol 类型及其应用(9)

一、Symbol 简介 Symbol 是 JavaScript 中的一种基本数据类型,它表示唯一的标识符。Symbol 的主要目的是防止属性名冲突,尤其是在多个代码库或模块中共享对象时。Symbol 值可以用作对象的属性名,这样可以确保属性名是唯一的,不会…...

深度学习笔记(4)——视频理解

视频理解 视频理解的问题:视频太大了 解决方案:在切片上训练,低FPS,低分辨率 测试的时候:在不同的clips上运行模型,取平均预测结果 视频由图片序列组成: 单帧CNN模型 训练普通的2D CNN模型,对每一帧进行分类,通常是视频分类的一个非常强的基线方法。 Late Fusio…...

Flink定时器

flink的定时器都是基于事件时间(event time)或事件处理时间(processing time)的变化来触发响应的。对一部分新手玩家来说,可能不清楚事件时间和事件处理时间的区别。我这里先说一下我的理解,防止下面懵逼。…...

springboot餐厅点餐系统丨源码+数据库+万字文档+PPT

作者简介: 作者:学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等 文末获取“源码数据库万字文档PPT”,支持远程部署调试、运行安装。 技术框架 开发语言:Java 框架:springbo…...

记一个itertools排列组合和列表随机排序的例子

朋友不知道哪里弄来了一长串单词列表,一定要搞个单词不重复的组合。那么这个时候我们就可以想到读书时所学的排列组合知识了,而这个在Python中可以怎么实现呢?我记录如下: 使用itertools模块实现排列组合 在 Python 中&#xff…...

Intent--组件通信

组件通信1 获取子活动的返回值 创建Activity时实现自动注册!【Activity必须要注册才能使用】 默认 LinearLayout 布局,注意 xml 中约束布局的使用; 若需要更改 线性布局 只需要将标签更改为 LinearLayout 即可,记得 设置线性布局…...

数据分析与应用:如何分析7日动销率和滞销率?

目录 0 需求描述 1 数据准备 1.1 订单明细表 1.2 商品信息表 2 SQL实现 3 问题分析与总结...

信息系统管理工程第8章思维导图

软考信管第8章的思维导图也实在是太长了,制作的耗时远超过之前的预计。给你看看思维导图的全貌如下,看看你能够在手机上滚动多少个屏幕 当你看到这段文字的时候,证明你把思维导图从上到下看完了,的确很长吧,第8章的教程…...

5-pandas常用操作2

前言 一、df.max() 计算每列最大值 二、df.apply() 1.可以传函数 代码如下(示例): # lambda 匿名函数自定义 f lambda x:x.max()-x.min() # x参数 冒号后是返回值 df.apply(f) # 默认axis0,所以这里是按列求最大值-最小值2.可以直…...

【HarmonyOS之旅】ArkTS语法(一)

目录 1 -> 基本UI描述 1.1 -> 基本概念 1.2 -> UI描述规范 1.2.1 -> 无参数构造配置 1.2.2 -> 必选参数构造配置 1.2.3 -> 属性配置 1.2.4 -> 事件配置 1.2.5 -> 子组件配置 2 -> 状态管理 2.1 -> 基本概念 2.2 -> 页面级变量的状…...

基于Spring Boot + Vue3实现的在线商品竞拍管理系统源码+文档

前言 基于Spring Boot Vue3实现的在线商品竞拍管理系统是一种现代化的前后端分离架构的应用程序,它结合了Java后端框架Spring Boot和JavaScript前端框架Vue.js的最新版本(Vue 3)。该系统允许用户在线参与商品竞拍,并提供管理后台…...

解决k8s部署dashboard时一直处于Pending状态的问题

直接用离线包就行 命令 [rootk8s-master ~]# docker load -i calico-image-v3.25.0.tar [rootk8s-master ~]# kubectl apply -f calico.yaml链接在https://download.csdn.net/download/weixin_42759398/90192045 [rootk8s-master ~]# docker load -i calico-image-v3.25.0.t…...

【新方法】通过清华镜像源加速 PyTorch GPU 2.5安装及 CUDA 版本选择指南

下面详细介绍所提到的两条命令,它们的作用及如何在你的 Python 环境中加速 PyTorch 等库的安装。 1. 设置清华镜像源 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple这条命令的作用是将 pip (Python 的包管理工具&#xf…...

Excel批量设置行高,Excel表格设置自动换行后打印显示不全,Excel表格设置最合适的行高后打印显示不全,完美解决方案!!!

文章目录 说个问题(很严重!!!)写个方案会Python看这里Python环境搭建不存在多行合并存在多行合并 不会Python看这里 说个问题(很严重!!!) 平时处理Excel表格…...

高阶数据结构之并查

并查集的概念 之前我们曾学过树,二叉树、二叉搜索树、红黑树、AVL树等,而并查集可以看做是这些树的集合,也就是森林,它也是一种树型结构,不过是顺序的树型结构,如果有学过堆的同学应该会很熟悉。 它的作用是…...

Pandas04

Pandas01 Pandas02 Pandas03 文章目录 内容回顾1 数据的合并和变形1.1 df.append (了解)1.2 pd.concat1.3 merge 连接 类似于SQL的join1.4 join (了解) 2 变形2.1 转置2.2 透视表 3 MatPlotLib数据可视化3.1 MatPlotLib API 套路 &为什么要可视化3.2 单变量可视化3.3 双变量…...

ECMAScript 标准解析及应用

摘要: 本文深入解析了 ECMAScript 标准,包括其发展历程、核心语法、数据类型、对象模型、函数特性等方面。详细阐述了如何在实际的 Web 开发和 JavaScript 编程中应用这些特性,通过具体的代码示例展示了 ECMAScript 标准在构建高效、健壮的应…...

2025最新版Java面试八股文大全

一、Java并发面试题 1、 ThreadLocal 1.1 谈谈你对ThreadLocal的理解? ThreadLocal的作用主要是做数据隔离,填充的数据只属于当前线程,变量的数据对别的线程而言是相对隔离的。它不是针对程序的全局变量,只是针对当前线程的全局…...

从零开始学AI,完成AI 企业知识库的AI问答搭建

1:本地安装一个ollama玩下,ollama下载模型默认路径为C盘,但该盘空间不足。 解决方案:添加系统环境变量OLLAMA_MODELS,设置其值为新的路径。 2:安装完成后,访问http://127.0.0.1:11434/ 查看服务…...

路过石岩浪心古村

周末常去的七彩城堡儿童乐园附近经常有老房子,没想到老房子最多的地方还是浪心古村。而且越看越有历史。 见到一座写着《序西书室》的房子,我最开始以为是一个古代的学校。但是查了百度更加不知道什么意思了哈。‌“序西书室”‌是指《文心雕龙》中的一个…...

【Leecode】Leecode刷题之路第93天之复原IP地址

题目出处 93-复原IP地址-题目描述 题目描述 个人解法 思路: todo代码示例:(Java) todo复杂度分析 todo官方解法 93-复原IP地址-官方解法 方法1:回溯 思路: 代码示例:(Java&…...

121. 买卖股票的最佳时机

题目链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock/description/?envTypestudy-plan-v2&envIdtop-100-liked 算法思路: 虽然已经提示我们使用贪心算法了,但是我最开始的时候却不知道怎么使用,因为如果…...

Python Polars快速入门指南:LazyFrames

前文已经介绍了Polars的Dataframe, Contexts 和 Expressions,本文继续介绍Polars的惰性API。惰性API是该库最强大的功能之一,使用惰性API可以设定一系列操作,而无需立即运行它们。相反,这些操作被保存为计算图,只在必要…...

OpenCV-Python实战(10)——形态学

1、腐蚀 cv2.erode() 可以删除图像中的噪音点。 可以删除毛边。 分割图像(当图像连接的不够紧密时) 。 img cv2.erode(src*,kernel*,anchor*,iterations*,borderType*,borderValue*)img:目标图像。 src:原始图像。 kernel&…...

在Windows上读写Linux磁盘镜像的一种方法

背景 嵌入式开发中,经常会把系统的Linux磁盘镜像保存到Windows上,以便上传到网盘备份或发送给工厂,但是如果想读取/修改镜像中的某个文件,一般有2种方案: 直接访问 就是用虚拟磁盘软件将镜像文件挂载成磁盘&#xf…...

基于STM32F103控制L298N驱动两相四线步进电机

文章目录 前言一、模块参数二、接口说明三、准备工作四、直流电机驱动引脚接线效果展示 五、两相四线步进电机驱动步进电机相关概念拍数驱动时序引脚接线效果展示 六、参考示例 前言 L298N 是一种常见的双 H 桥电机驱动模块,广泛用于驱动直流电机和步进电机。它基于…...

Blazor开发中注册功能设计研究

Blazor开发中注册功能设计是为了用户可以高效、安全地完成注册并登录系统。以高效和用户友好为目标,结合校验、注册和登录功能,为用户提供一个完整的账户管理流程,同时保障系统安全性和稳定性。注册页面应该结构清晰、布局合理,既满足基本注册功能,又通过响应式设计与视觉…...

Docker安装体验kuboard-k8s多集群管理工具

文章目录 1.kuboard是什么?2.docker安装命令2.1 Linux上docker环境安装命令2.2 Windows上docker环境安装命令 3.登录访问3.1首页访问地址3.2 默认账号密码3.3 登录页3.4 首页 4总结 1.kuboard是什么? 参看官网: https://kuboard.cn/gitHub项目地址&…...

组建基于IPV6的网络

现在很多单位使用IPV6的网络,地址资源紧张的状况得到了缓解,很多单位目前采用双栈运行,就是网络设备上同时跑IPV4和IPV6。 IPV6的网络与IPV4网络的配置与IPV4基本相同,注意地址规则与格式的不同。 长度:     IPv6地…...

浙江肿瘤医院病理库存储及NAS共享存储(磁盘阵列)方案-Infortrend普安科技

Infortrend金牌代理-燊通智联信息科技发展(上海)有限公司与院方多轮沟通,详细讨论性能与容量要求,最终决定采用GSe统一存储设备,与现有病理系统服务器无缝对接,每台设备配1.92T SSD作缓存加速原数据读写&am…...

UE5在蓝图中使用VarestX插件访问API

在Fab中安装好VarestX免费插件 这个插件可以用来远程请求http和api等,返回json等格式内容 插件网址 https://www.fab.com/zh-cn/listings/d283e40c-4ee5-4e73-8110-cc7253cbeaab 虚幻里开启插件 然后网上随便搜个免费api测试一下,这里我找了个微博热搜…...