php第三章

代码实现

首页代码

<html>
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
<h1>
    欢迎
    <?php
    session_save_path('.');
    session_start();
    echo $_SESSION['username'];
    ?>
    进入首页!
</h1>
<br>
<a href="denglu.php">登录</a>
</body>
</html>

登录代码

<html>
<head>
    <meta charset="UTF-8">
    <title>登录</title>
</head>
<body>
<form method="get" action="houtai.php">
    用户名:<input type="text" name="username">
    密码:<input type="password" name="password">
    <input type="submit" value="submit">
</form>
</body>
</html>

后台代码

<?php
$username=$_GET["username"];
$password=$_GET["password"];

if ($username=="root"&&$password=="root"){
    session_save_path(".");
    session_start();
    $_SESSION['username']=$username;
    echo '用户名密码输入正确,即将跳转到首页';
    header("Refresh:3,url='./shouye.php'");//使用header函数刷新页面
}
else{
    echo '用户名或密码错误,即将跳转到登录界面,请重新输入';
    header('Refresh:3,url="./denglu.php"');
}

当用户第一次进入首页时,即第一次访问网站时,是没有cookie值的。

点击登录进入登录网页

输入用户名和密码,进入网站后台

如果输入错误,跳转到登录页面重新输入用户名和密码,也不会生成session凭证

如果输入正确的用户名和密码,生成session凭证,并跳转至首页

请求包

响应包

可以看到,服务器端返回给浏览器set-cookie值。cookie就是服务器端存储的session凭证的文件名。

该文件中存储的用户登录状态

cookie值存储在浏览器中

当用户下一次登录时,带上cookie字段

就不用再次输入用户名和密码了。

安全问题

当攻击者拿到浏览器cookie值时,不用知道管理员用户名和密码就可以登录网站,这是不安全的。

攻击者将cookie值改为用户登录的cookie值,直接获得用户登录状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值