小迪安全第二十三天-安全开发-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一般用于存储大型的数据,如购物车、登录状态等信息。

参考文章:

相关推荐
石工记1 天前
对称加密 vs 非对称加密图解详解
java·网络安全
网安INF1 天前
入侵检测系统(IDS)解析
网络·网络协议·安全·网络安全·ids
网安INF2 天前
典型网络攻击分析:ARP欺骗与TCP劫持
网络·网络协议·tcp/ip·安全·网络安全
晨欣2 天前
后 Sidecar 时代:深度解析 eBPF 与 Sidecar 模式的架构之争(Gemini 3 Pro Preview 回答)
网络安全·云原生·架构·ebpf
白帽子凯哥哥2 天前
Misc题目中图片隐写和流量分析的详细工具使用技巧
linux·运维·web安全·网络安全·docker·渗透测试
saulgoodman-q2 天前
Pwncollege V8 Exploitation (下) 完结散花
网络安全·pwn·ctf
梧六柒2 天前
[HUBUCTF 2022 新生赛]messy_traffic WP
网络安全
梧六柒2 天前
[闽盾杯 2021]日志分析 WP
网络安全
Neolnfra2 天前
当“同时发生”成为攻击武器
web安全·网络安全·并发·高并发产生的漏洞
网安INF2 天前
防火墙的分类与部署详解
服务器·安全·网络安全·防火墙