首页
学习
活动
专区
圈层
工具
发布
50 篇文章
1
Ubuntu环境使用TPC-DS工具生成测试数据
2
cookie机制及其原理
3
网络测试,带宽测试,流量测试
4
使Edge浏览器打开仅支持IE兼容模式的网站
5
【Linux】挂载硬盘、镜像文件、rpm软件包管理器、yum软件包管理器、软件安装jdk、tomcat、mysql
6
【Spring Boot 项目创建】002-代码关联 Git 远程仓库
7
用ChatGPT生成测试数据
8
手机APP测试(测试点、测试流程、功能测试)
9
web前端好帮手 - Jest单元测试工具
10
用ChatGPT生成测试数据
11
Redis 精简笔记
12
一句话就能提Bug,这个自动提交Bug Skill 太好用了
13
从0到1做出可复用的 iOS 自动化测试 Skill,附真机演示效果
14
大厂测开面试都在问AI,这个实战项目直接帮你准备好了
15
OpenClaw 拿什么吃掉测试岗?
16
一篇理清Prompt,Skill,MCP之间的区别
17
AI 测试必备:推荐一款能让自动化失败脚本「自己修好」的 AI skill!
18
【Selenium 自学系列】(一)看源码分析交互原理
19
什么是CI/CD
20
这到底是前端还是后端Bug
21
详解接口测试(2)- HTTP接口用例设计与测试方法(拿B站练手)
22
比羊了个羊还火的ChatGPT,玩法全攻略讲解
23
爱心代码文字升级版
24
自动打包、装机、生成用例、真机回归,AI 测试流水线终于跑通了
25
AI生成注册用户测试用例
26
AI驱动的测试报告分析:从数据中挖掘测试洞察
27
WEB功能测试说明
28
APP功能测试要点
29
不输ChatGPT,kimi秒画流程图
30
聊天功能如何测试?
31
订单支付功能测试
32
app功能测试--需要测试哪些要点
33
【软件测试】使用QTP进行功能测试
34
TestZeus Hercules:功能测试写 Gherkin,让 AI Agent 去跑冒烟流程
35
非功能需求的测试
36
【功能篇】如何测试报表?
37
VFP AI 插件(ver:20251007)测试报告
38
VFP AI 插件使用指南(三)
39
「 支付功能 」的测试思路
40
研发、测试提效攻略:利用Apipost AI 6 大核心功能实现接口测试全流程
41
功能测试之app测试要点提取与分析
42
网站测试中短信发送功能测试点
43
常用功能的测试用例
44
20行代码,用Python实现异常测试用例
45
新梦想干货——软件测试中的43个功能测试点(下)
46
《打造你的 AI 知识库:用 Skill 实现项目文档的自动生成与维护》
47
Apifox和Apipost:2025 API工具巅峰对决
48
接口测试--apipost接口断言详解
49
ApiPost自动化测试基础之:如何使用测试校验(测试用例)?
50
教你用 Node.js 模拟自动发送邮件验证码
清单首页测试文章详情

cookie机制及其原理

一、多个值存储到一个cookie中

首先,存储在一块儿的数值应该是相关联的。多个值通过一个特殊的字符连接起来(特殊字符就是为了截取字符方便),然后用一个键来存储连接后的字符串。用document.cookie直接获取cookie的内容。

二、cookie实现自动登录原理

1. 保存用户信息阶段

当用户登录网站时,在登录页面填写完用户名和密码后,如果用户在提交时还选择了“两星期内自动登录”的复选框,那么在后台程序中验证用户名和密码都正确后,还要为用户保存这些信息,以便用户下一次可以直接进入网站;如果没有勾选“两星期内自动登录”复选框,则不必为用户保存这些信息,用户下次登录还需要填写用户名和密码。

在保存用户信息阶段,主要工作是对用户信息进行加密并保存到客户端。大致分为以下几步:

第一步:得到用户名、经MD5加密后的用户密码、cookie有效时间;

第二步:自定义一个Webkey,这个key是我们为自己网站定义的一个字符串常量;

第三步:将上两步得到的四个值连接成一个字符串,再进行MD5加密,这样就得到一个MD5明文字符串;

第四步:将用户名、cookie有效时间、MD5明文字符串使用“:”间隔连接起来,再对这个字符串进行Base64编码;

第五步:设置一个cookieName,将cookieName和上一步产生的Base64编码写入到客户端。

2. 读取用户信息

第一步:根据设置的cookieName,得到cookieValues,如果值为空,就不帮用户自动登录,否则执行读取方法;

第二步:将cookieValues进行Base64解码,将取得的字符串以split(":")进行拆分,得到一个String数组,这一步得到三个值:用户名、cookie有效期和MD5明文字符串;

第三步:判断cookieValues长度是否为3,如果不为3,则进行错误处理;

第四步:如果长度为3,则取出第二个,将有效时间与服务器系统当前的时间比较,看是否过期;

第五步:如果cookie没过期,就取cookieValues[0],然后去数据库按用户名查找用户;

第六步:若上一步返回空,则进行错误处理,否则返回一个User实例对象;

第七步:取出实例对象User的用户名、密码(该值经过MD5加密)、cookie有效时间、Webkey,然后将这四个值连接起来,然后进行MD5加密,这样做也会得到一个MD5明文字符串;

第八步:将上一步得到的MD5明文与cookieValues[2]进行equals比较,如果是false,则进行错误处理,如果是true,则将user对象添加到session中,帮助完成自动登录。

三、补充说明

MD5作为一种校验手段而非加密手段,因为MD5是不可逆的,但存在可重复性。

下一篇
举报
领券