实验七
实验内容
1.登录SESSION验证,防止表单提交漏洞
(1)创建表单,包含用户名和密码。
(2)在表单信息处理页面中启动SESSION,这里假设输入的用户名和密码(不能为空)都能通过验证,后期可在数据库中搜索验证。
(3)在登录的主页中,首先判断SESSION是否存在,若存在,则停留到主页面。若不存在,返回到登录页面,此时认为利用表单提交漏洞直接登录到主页面,应该避免。
2.数据库操作
(1)创建一个数据库(名字自定)
(2)选择(1)中创建的数据库
(3)创建数据表(名字自定),包含如下字段和属性如下
ID | int | 主键 | 自增 |
name | varchar(25) | ||
price | float | ||
addtime | datetime | ||
number | int | ||
good_describe | varchar(100) |
(4)向数据表中添加两条数据
name | price | addtime | number | good_describe |
'笔记本电脑' | '5000' | '2019-11-26 10:30:00' | '200' | '联想小新AIR14' |
'PHP程序设计' | '53' | '2019-11-26 11:30:00' | '10000' | '网络编程教材' |
(5)将字段名addtime 修改为add_time
(6)将name为 ‘PHP程序设计’的价格修改为43
(7)查询name为“笔记本电脑”的记录
(8)删除最后一条记录
实验过程
登录SESSION验证,防止表单提交漏洞
源代码
index.html
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>登录SESSION验证,防止表单提交漏洞</title>
</head>
<body>
<form action="006.php" method="post" name="form_1">
<table border="1" align="center" width="400px">
<tr>
<td>用户名:</td>
<td><input type="text" name="user_name"/></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="text" name="user_pwd"></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit" name="btn_submit" value="提交"/>
<input type="reset" name="btn_reset" value="重填"/>
</td>
</tr>
</table>
</form>
</body>
</html>
006.php
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>后台管理系统</title>
</head>
<body>
<form action="back.php" method="post" name="form_2">
<?php
session_start();
if($_SESSION['name'] != '')
{
echo $_SESSION['name']."欢迎使用<br>";
echo "<input type=\"submit\" name=\"back\" value=\"注销\"/>";
}
else {echo "<script>window.location.href = 'index.html'</script>";}
?>
</form>
</body>
</html>
main.php
<?php
$name = $_POST['user_name'];
$pwd = $_POST['user_pwd'];
if($name != '' && $pwd != '')
{
session_start();
$_SESSION['name'] = $name;
echo "<script>window.location.href='main.php';</script>";
}
else {echo "<script>window.location.href='index.html';</script>";}
?>
back.php
<?php
session_start();
if(isset($_SESSION['name'])) {unset($_SESSION['name']);}
echo "退出成功!5秒后返回登入页面";
header("refresh:5;url=index.html");
?>
数据库操作
源代码
连接数据库(以下命令均在本地数据库,CMD中执行)
mysql -u 用户名 -p密码
创建数据库
create database 数据库名;
选择数据库
use 数据库名;
创建数据表
create table 数据表名(
ID int not null auto_increment,
name varchar(25),
price float,
addtime datetime,
number int,
good_describe varchar(100),
primary key (ID)
);
添加数据
insert into 数据表名
(name,price,addtime,number,good_describe)
value
('笔记本电脑','5000','2019-11-26 10:30:00','200','联想小新AIR14');
insert into 数据表名
(name,price,addtime,number,good_describe)
value
('PHP程序设计','53','2019-11-26 11:30:00','10000','网络编程教材'
);
修改字段名
alter table 数据表名 change addtime add_time datetime;
修改数据
update 数据表名 set price = '43' where name = 'PHP程序设计';
查询数据
select * from 数据表名 where name = '笔记本电脑';
删除数据
delete from 数据表名 where ID = '02';
实验展示
点击查看完整网页