小迪安全第二十三天-安全开发-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 小时前
Anthropic年度报告解读:AI重塑网络攻击形态,传统防御体系亟待升级
人工智能·安全·网络安全·ai大模型
ManageEngine卓豪4 小时前
从性能故障到安全风险,现代企业数字化转型下的网络丢包运维管控指南
运维·网络安全·网络故障·网络丢包
lcreek8 小时前
SQL盲注漏洞详解 DVWA High
网络安全·sql注入
X7x58 小时前
重塑安全边界:PDRR模型如何构建数字时代的韧性防线
网络安全·网络攻击模型·安全威胁分析·安全架构·pdrr模型
大方子11 小时前
【好靶场】PDF也可以有XSS1
网络安全·好靶场
学逆向的13 小时前
C++模板
开发语言·c++·网络安全
2601_9555052514 小时前
自然人身份确权可信基础设施赋能身份风险等级标签合规
人工智能·网络安全·金融·健康医疗·媒体·教育电商·政务
百度安全15 小时前
2025 百度 ESG 报告发布:以 AI 筑盾,共建可信数字生态
人工智能·网络安全
云安全助手16 小时前
国内调用GPT的现实困境与聚合平台解决方案探析
网络·人工智能·网络安全·ai大模型