小迪安全第二十三天-安全开发-PHP应用&后台模块Cookie&Session&Token

身份验证

Cookie(客户端存储技术)

生成cookie的原理过程

  1. 客户端向服务器发送HTTP请求。
  2. 服务器检查请求头中是否包含cookie信息。
  3. 如果请求头中包含cookie信息,则服务器使用该cookie来识别客户端,否则服务器将生成一个新的cookie。
  4. 服务器在响应头中设置cookie信息并将其发送回客户端。
  5. 客户端接收响应并将cookie保存在本地。
  6. 当客户端发送下一次HTTP请求时,它会将cookie信息附加到请求头中。
  7. 服务器收到请求并检查cookie的有效性。
  8. 如果cookie有效,则服务器响应请求。否则,服务器可能会要求客户端重新登录。

相关函数

  • setcookie(): 设置一个cookie并发送到客户端浏览器。
  • unset(): 用于删除指定的cookie。

案例-用cookie做后台身份验证

  • 创建表(这里是用于案例里账号密码写死)

  • 测试

    • 接受输入的帐号密码

    • 判断帐号密码正确性

    • 结果

  • cookie保存的是用户的浏览器上 攻击的目标就是用户本身

Session(服务器端会话管理技术)

生成session的原理过程

  1. 客户端向服务器发送HTTP请求。
  2. 服务器为客户端生成一个唯一的session ID,并将其存储在服务器端的存储器中(如文件、数据库等)。
  3. 服务器将生成的session ID作为一个cookie发送给客户端。
  4. 客户端将session ID保存为一个cookie,通常是在本地浏览器中存储。
  5. 当客户端在发送下一次HTTP请求时,它会将该cookie信息附加到请求头中,以便服务器可以通过该session ID来识别客户端。
  6. 服务器使用session ID来检索存储在服务器端存储器中的与该客户端相关的session数据,从而在客户端和服务器之间共享数据。

相关函数

  • session_start(): 启动会话,用于开始或恢复一个已经存在的会话。
  • $_SESSION: 用于存储和访问当前会话中的所有变量。
  • session_destroy(): 销毁当前会话中的所有数据。
  • session_unset(): 释放当前会话中的所有变量。
  • Session存储路径:PHP.INI中session.save_path设置路径

案例-用session做后台身份验证

  • seesion产生文件目录:phpstudy_pro\Extensions\tmp\tmp

  • session保存在服务器上

  • 登陆后有session 退出删除

Token(身份验证与授权技术)

  • token(令牌)是一种用于验证用户身份或授权访问的数字凭证

Token使用

  • 生成Token并将其存储在Session
  • 生成Token并将其绑定在Cookie触发
  • 尝试登录表单中带入Token验证逻辑

Token要满足:

  1. 唯一性:每个 Token 对应唯一用户会话

  2. 防篡改:加密签名防止数据被伪造

  3. 时效性:过期机制保障安全性

案例-Token做用户登录判断

  • 登陆有token值

  • 退出登陆token消失(唯一性)

  • Cookie和Session区别

  • 存储位置不同

    • Cookie是存储在客户端(浏览器)上的
    • Session是存储在服务器端的
  • 安全性不同

    • Cookie存储在客户端上,可能会被黑客利用窃取信息
    • Session存储在服务器上,更加安全。
  • 存储容量不同

    • Cookie的存储容量有限,一般为4KB
    • Session的存储容量理论上没有限制,取决于服务器的硬件和配置
  • 生命周期不同

    • Cookie可以设置过期时间,即便关闭浏览器或者重新打开电脑,Cookie仍然存在直到过期或者被删除
    • Session一般默认在浏览器关闭后就会过期
  • 访问方式不同

    • Cookie可以通过JavaScript访问
    • Session只能在服务器端进行访问。
  • 使用场景不同

    • Cookie一般用于存储小型的数据,如用户的用户名和密码等信息
    • Session一般用于存储大型的数据,如购物车、登录状态等信息。

参考文章:

相关推荐
XUEYUAN52123 天前
ASN 自治系统号风控:平台如何通过 IP 所属自治域批量识别代理流量
python·网络协议·http·网络安全·socks5
其实防守也摸鱼3 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
TechEdu2026063 天前
[人工智能]人工智能时代的零日漏洞与零日攻击
人工智能·网络安全·ai·信息安全
程序员若风3 天前
CSRF攻击原理介绍和利用-腾讯云开发者社区
前端·网络·安全·web安全·网络安全·csrf攻击·腾讯云开发者社区
菩提小狗3 天前
每日安全情报报告 · 2026-09-21
网络安全·漏洞·cve·安全情报·每日安全
数安旭说3 天前
从“堆叠工具”到“一体化治理”:端点安全的技术演进与实践观察
网络安全·系统架构·数据安全·企业安全·端点安全·防泄密·一体化管理
白猫不黑3 天前
Python实现简易Web弱口令爆破与防护方案
python·web安全·计算机·网络安全·黑客·信息安全·渗透测试
菩提小狗4 天前
每日安全情报报告 · 2026-09-17
网络安全·漏洞·cve·安全情报·每日安全
2601_966377134 天前
176号令10月1日施行|网安检查换新规矩,数达数安版等保一体机方案助企业从容应对
网络安全·数据安全·数安版等保一体机
qingtian!4 天前
VM中安装WinServer2016详细教程
网络安全