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

参考文章:

相关推荐
汤愈韬14 小时前
知识点3:动态目的NAT的配置总结
网络·网络协议·网络安全·security·huawei
漏洞文库-Web安全16 小时前
Linux逆向学习记录
linux·运维·学习·安全·web安全·网络安全·逆向
浩浩测试一下18 小时前
C&&汇编中的调用约定
大数据·汇编·安全·web安全·网络安全·系统安全
雪影风痕18 小时前
华为安全防火墙部署
服务器·网络协议·tcp/ip·网络安全
-曾牛19 小时前
CSRF跨站请求伪造:原理、利用与防御全解析
前端·网络·web安全·网络安全·渗透测试·csrf·原理解析
介一安全19 小时前
【Frida Android】实战篇11:企业常用加密场景 Hook(1)
android·网络安全·逆向·安全性测试·frida
三七吃山漆20 小时前
攻防世界——supersqli
数据库·网络安全·web·ctf
Whoami!21 小时前
❽⁄₁ ⟦ OSCP ⬖ 研记 ⟧ 修改漏洞利用脚本 ➱ 缓冲区 & 栈结构
网络安全·信息安全·漏洞利用·缓冲区溢出
白帽子黑客杰哥21 小时前
零基础系统学习渗透测试:2025年详尽路线图
网络安全·就业·护网行动·网络安全工程师·实战演练·报班