本文主要是介绍河南省高校联盟战队课件7(CSRF-sessioncookie基础),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
session&cookie
详细视频
session&cookie
登录的一般步骤:
-
发送登录请求 账号 密码
-
接受账号密码
-
判断账号密码的准确性
正确 登录成功->进入到后台页面
错误 登录失败->重新验证
为何要用:后台管理页面有多个文件页面
不可能进入每个页面都要验证账号密码吧 不能啥也不验证 为了方便验证,一般会选用cookie或session验证
cookie的原理
cookie的执行原理:就是当客户端访问服务器的时候(服务器运用了cookie),服务器会生成一份cookie传输给客户端,客户端会自动把cookie保存起来,以后客户端每次访问服务器,都会自动的携带着这份cookie。
- 简易cookie原理示意图 如下图所示:(图片他人的0.0)
cookie:身份验证 存储到客户端
cookie安全:cookie修改 伪造 盗取(你们的孝俊学长讲过(xss))
http://127.0.0.1/blog/admin/add.php
通过代码可以看出他验证cookie所以:
源码如下:大家可以下去自己搭建
//add.php
<?php
header("Content-Type:text/html;charset=utf-8");
$user=$_COOKIE['user'];
if ($user =='admin'){echo "欢迎登陆管理员首页!";echo "这是文章增加页面";
}else{echo "没有进去哦!";//header("Location: ../cookie/login.php");exit;
}
//login.php
<form action="" method="POST">帐号:<input type="text" name="user">密码:<input type="password" name="pass"><input type="submit" value="提交"></form>
<?php
header("Content-Type:text/html;charset=utf-8");
include('../config/conn.php');$username=$_POST['user'];
$password=md5($_POST['pass']);
//echo $password;
$sql="select * from sy_adminuser where username='$username' and password='$password'";
//echo $sql;
$result=mysql_query($sql,$conn);
if (mysql_num_rows($result)){ //mysql_num_rows(查看数据库返回行数)(判断是否有返回值)setcookie('user',$username);header("Location:../admin/add.php");//跳转页面
}else{echo '登录失败';}
案例cookie:
http://127.0.0.1/cookie/admin/?r=index
我们没有输入账号密码成功进入后台
session原理
当客户端第一次请求服务器的时候,服务器生成一份session保存在服务端,将该数据(session)的id以cookie的形式传递给客户端;以后的每次请求,浏览器都会自动的携带cookie来访问服务器(session数据id)。
- 简易cookie原理示意图 如下图所示:(图片他人的0.0)
session:身份验证 存储到服务器端 (session的劫持)
-
第一次验证:PHPSESSID=uvvjomb155eu9aandetkbc1hg5
-
关闭浏览器后重新访问:(时效性短)
-
第二次访问:
-
PHPSESSID=qgig7bbpb2dtkufk3gbvp08v93
-
**对比二次的session是不同的**
session:
//login.php<form action="" method="POST">帐号:<input type="text" name="user">密码:<input type="password" name="pass"><input type="submit" value="提交"></form>
<?php
header("Content-Type:text/html;charset=utf-8");
include('../config/conn.php');$username=$_POST['user'];
$password=md5($_POST['pass']);
$captcha=$_POST['captcha'];
//echo $password;
$sql="select * from sy_adminuser where username='$username' and password='$password'";
echo $sql;
$result=mysql_query($sql,$conn);
while($row=mysql_fetch_array($result)){ //成功登录后session_start();//前端$_SESSION['username'] = $row['username'];//echo $_SESSION['username'];header('Location: ../admin/add1.php');
}
//add1.php
<?phpheader("Content-Type:text/html;charset=utf-8");
session_start();//后端
$username=$_SESSION['username'];
if($username=='admin'){echo '欢迎登陆管理员首页!';
}else{echo "请登录后访问!";
}
这篇关于河南省高校联盟战队课件7(CSRF-sessioncookie基础)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!