阳光学院
计算机科学与技术系
信息安全实验报告
专业:计算机科学与技术
年级: 2015级
组别: 1B
学号: 15100273
姓名: 邹驼玲
2017年月日
实验4 数据库安全
练习一、 SQL注入
【实验目的】
了解SQL注入的基本原理
掌握PHP脚本访问MySQL数据库的基本方法
掌握程序设计中避免出现SQL注入漏洞的基本方法
【实验人数】
每组1人
【系统环境】
Linux
【网络环境】
交换网络结构
【实验类型】
设计型
【实验步骤】
「注」实验步骤中涉及到的mysql数据库操作命令和php脚本源码,均在/opt/ExpNIC/HostSec-Lab/ Projects目录中提供。
(1) 启动mysql服务
①在控制台中输入如下命令启动mysql服务。缺省状态下root用户密码为空。
service mysqld start
②可通过如下命令查看mysql服务是否启动成功。
service mysqld status
(2) 创建user数据库表
在控制台中输入mysql,进入mysql客户端控制台(mysql>)。
①选择工作数据库test(缺少状态下,test数据库已被创建)。
use test;
②创建user数据库表
CREATE TABLE user(userid int(11) NOT NULL AUTO_INCREMENT, username varchar(20) NOT NULL DEFAULT "", password varchar(20) NOT NULL DEFAULT "", PRIMARY KEY(userid))TYPE=MyISAM AUTO_INCREMENT=3;
③插入两条数据信息
INSERT INTO user VALUES(1, "angel", "mypass");
INSERT INTO user VALUES(2, "lblis", "yourpass");
④查看数据库表
select * from user;
,内容如下:
<?php
$servername = "localhost" # 定义变量 MySQL服务器名称
$dbusername = "root"; # 访问MySQL数据库的用户名称
$dbpassword = ""; # root用户密码,默认为空
$dbname = "test"; # 工作数据库
$username = $_GET['username']; # 利用HTTP的GET方法,从URL中获取username参数值
$password = $_GET['password']; # 获取password参数值
## 连接到MySQL服务器
$x = mysql_connect($servername, $dbusername, $dbpassword);
{
if( !$x )
{
echo( "连接MySQL服务器失败".mysql_error() );
exit();
}}
## 选择工作数据库
if( !mysql_select_db($dbname, $x) )
{
echo( "激活$dbname数据库失败".mysql_error() );
exit();
}
## SQL查询
$sql_select = "SELECT * FROM user WHERE username='$username' AND password='$password'";
$result = mysql_query($sql_select, $x);
$userinfo = mysql_fetch_array($result);
if( empty($userinfo) )
{
echo( "登录失败" );
}
else
{
echo( "登录成功" );
}
echo "<p>SQL查询: $sql_select<p>";
?>
从代码中可知,当输入正确的用户名和密码后,就会提示登录成功,否则登录失败。
单击桌面控制面板中“Web浏览器”按钮,当我们在URL地址栏中提交:
http://本机IP/?username=angel&password=mypass
Web页面会提示“登录成功”。
写出此时PHP脚本中具体的SQL查询语句:
SELECT*FROM user WHERE u
信息安全实验4--报告模板 来自淘豆网m.daumloan.com转载请标明出处.