实验七

实验内容

1.登录SESSION验证,防止表单提交漏洞

(1)创建表单,包含用户名和密码。
(2)在表单信息处理页面中启动SESSION,这里假设输入的用户名和密码(不能为空)都能通过验证,后期可在数据库中搜索验证。
(3)在登录的主页中,首先判断SESSION是否存在,若存在,则停留到主页面。若不存在,返回到登录页面,此时认为利用表单提交漏洞直接登录到主页面,应该避免。

2.数据库操作

(1)创建一个数据库(名字自定)
(2)选择(1)中创建的数据库
(3)创建数据表(名字自定),包含如下字段和属性如下
IDint主键自增
namevarchar(25)
pricefloat
addtimedatetime
numberint
good_describevarchar(100)

(4)向数据表中添加两条数据

namepriceaddtimenumbergood_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';

实验展示

点击查看完整网页