news 2026/4/15 22:20:20

【小迪安全2023】day23 PHP应用后台模块SessionCookietoken身份验证唯一性

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【小迪安全2023】day23 PHP应用后台模块SessionCookietoken身份验证唯一性

有待更新。。。

第23天 PHP应用&后台模块&Session&Cookie&token&身份验证&唯一性

演示案例

后台模块-身份验证-Cookie技术

后台模块-身份验证-Seession技术

后台模块-数据唯一性-Token技术

Cookie使用

1、客户端向服务器发送HTTP请求。

2、服务器检查请求头中是否包含cookie信息。

3、如果请求头中包含cookie信息,则服务器使用该cookie来识别客户端,否则服务器 将生成一个新的cookie。

4、服务器在响应头中设置cook1e信息并将其发送回客户端。

5、客户端接收响应并将cookie保存在本地。

6、当客户端发送下一次HTTP请求时,它会将cookie信息附加到请求头中。

7、服务器收到请求并检查cookie的有效性。

8、如果cookie有效,则服务器响应请求。否则,服务器可能会要求客户端重新登录

测试代码

admin-c.php

<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>后台管理系统 - 登录</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: "Microsoft YaHei", Arial, sans-serif; } body { height: 100vh; background: linear-gradient(135deg, #2c3e50, #3498db); display: flex; justify-content: center; align-items: center; } .login-box { width: 360px; background: #fff; padding: 40px 30px; border-radius: 8px; box-shadow: 0 10px 30px rgba(0,0,0,0.2); } .login-box h2 { text-align: center; margin-bottom: 30px; color: #333; } .login-box input { width: 100%; height: 42px; margin-bottom: 20px; padding-left: 12px; border: 1px solid #ddd; border-radius: 4px; font-size: 14px; } .login-box input:focus { outline: none; border-color: #3498db; } .login-box button { width: 100%; height: 42px; background: #3498db; border: none; color: #fff; font-size: 16px; border-radius: 4px; cursor: pointer; } .login-box button:hover { background: #2980b9; } .login-footer { text-align: center; margin-top: 15px; font-size: 12px; color: #999; } </style> </head> <body> <div class="login-box"> <h2>后台管理系统</h2> <form action="" method="post"> <input type="text" name="username" placeholder="用户名" required> <input type="password" name="password" placeholder="密码" required> <button type="submit">登录</button> </form> <div class="login-footer"> © 2025 管理系统 </div> </div> </body> </html> <?php //登录文件 include '../config.php'; $user=$_POST['username']; $password=$_POST['password']; //连接数据库,进行查询 $sql="select * from admin where username='$user' and password='$password';"; echo '<br>'; //echo $sql; $data=mysqli_query($con,$sql); if($_SERVER['REQUEST_METHOD']=='POST') { //是否登陆成功 if(mysqli_num_rows($data)>0) { //成功登录才有cookie $expire = time()+60*60*24*30 ;//一个月后过期 setcookie('username',$user,$expire,'/'); setcookie('password',$password,$expire,'/'); // echo "<script>alert('登陆成功');</script>"; header("location:index-c.php"); }else{ echo "<script>alert('fail');</script>"; } }

index-c.php

<?php if($_COOKIE['username']=='admin' and $_COOKIE['password']=='123456') { } else { header("location:admin-c.php"); } ?> <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>后台管理系统</title> <style> body { font-family: Arial, sans-serif; margin: 0; padding: 20px; background-color: #f4f4f4; } .header { background-color: #2c3e50; color: white; padding: 15px; text-align: center; border-radius: 5px; margin-bottom: 20px; } .logout-btn { background-color: #e74c3c; color: white; border: none; padding: 8px 16px; border-radius: 3px; cursor: pointer; float: right; margin-top: -35px; } .logout-btn:hover { background-color: #c0392b; } .content { background-color: white; padding: 20px; border-radius: 5px; box-shadow: 0 2px 5px rgba(0,0,0,0.1); } .welcome { margin-bottom: 20px; } </style> </head> <body> <div class="header"> <h1>后台首页</h1> <a href="logout-c.php">退出登录</a> <div style="clear: both;"></div> </div> <div class="content"> <div class="welcome"> <h2>欢迎使用后台管理系统</h2> <p>当前登录用户:<?php echo $_COOKIE['username']?></p> <p>登录时间:<span id="login-time"></span></p> </div> <div> <h3>系统状态</h3> <ul> <li>用户总数:128</li> <li>今日访问量:245</li> <li>系统运行正常</li> </ul> </div> </div> <script> // 显示当前时间 document.getElementById('login-time').textContent = new Date().toLocaleString(); // 退出登录功能 function logout() { if(confirm("确定要退出登录吗?")) { alert("退出登录成功,正在跳转到登录页面..."); // 在实际应用中,这里应该跳转到登录页面 // window.location.href = "login.html"; } } </script> </body> </html> <?php //登陆成功的首页文件

logout-c.php

<?php //退出登录 //1.设置cookie为空,让之前的if语句为假,达到无法登录的效果 //2.也可以调用删除函数 setcookie('username','',time()-3600,'/'); setcookie('password','',time()-3600,'/'); header("location:admin-c.php"); exit();
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 20:22:07

LobeChat快手内容推送策略

LobeChat在快手内容推送中的实践与演进 在短视频平台竞争日益激烈的今天&#xff0c;用户注意力成为最稀缺的资源。如何让用户不仅“看到内容”&#xff0c;还能“主动发现内容”&#xff1f;这是像快手这样的平台面临的核心命题。传统推荐系统依赖隐式行为数据&#xff08;如完…

作者头像 李华
网站建设 2026/4/15 9:30:02

重构智慧书-第16条:学当广博,志当赤诚

一、原文呈现学须富&#xff0c;志须诚学富志诚定会使你马到成功。若人的悟性与心术不正结了缘&#xff0c;则不但不是良缘&#xff0c;简直如野蛮的强奸。恶意通常会毒害完美&#xff0c;如兼有知识助虐&#xff0c;则危害更烈。无论什么天才,若居心不良&#xff0c;必遭恶报。…

作者头像 李华
网站建设 2026/4/13 3:10:42

Day31:SPI 协议基础

SPI 特点&#xff1a; 全双工、高速串行通信&#xff0c;主从架构 4 线&#xff1a;SCK (时钟)、MOSI (主发从收)、MISO (主收从发)、SS (片选) 片选 (SS)&#xff1a;低电平有效&#xff0c;每个从设备独立的片选线 通信速率&#xff1a;可达 STM32 主频的 1/2 (如 36MHz) SPI…

作者头像 李华
网站建设 2026/4/10 22:25:27

LobeChat能否集成潮汐信息?沿海地区活动安排建议

LobeChat能否集成潮汐信息&#xff1f;沿海地区活动安排建议 在福建连江的清晨&#xff0c;渔民老陈站在码头边皱眉翻着手机——他需要知道今天退潮的时间是否适合下滩挖蛤蜊&#xff0c;还得看风浪大不大、天气好不好。可他得先打开一个App查潮汐&#xff0c;再切到另一个看天…

作者头像 李华