-
sql注入是将非法输入参数传递到要执行的sql语句中,得到正常逻辑之外的结果的一种攻击手法。
查看全部 -
数字攻击:?id=-1 OR 1=1
字符串攻击:'# 或者 --空格 作用在于注释密码后面的内容,达到免密码验证登录
查看全部 -
sql注入的产生查看全部
-
sql注入产生原因
1、web开发人员无法保证所有的输入都已经过滤
2、攻击者利用发送给sql服务器的输入数据构造可执行的sql代码
3、数据库未做相应的安全配置 输入信息:get、post、http头、cookie信息等
查看全部 -
可使用预编译查看全部
-
吧查看全部
-
程序所需代码如下
login.html代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户登录</title>
</head>
<body>
<form action="login.php" method="post" >
<h2>用户登录</h2>
<input style='display:block;' name='user_name' type='text' placeholder='用户名'/>
<br/>
<input type='password' style='display:block;' name='password' placeholder='密码'/>
<br/>
<input type='submit' value='提交'/>
</form>
</body>
</html>
login.php代码:
<?php
$db_config = array(
'host' => 'localhost',
'port' => 3306,
'user' => 'root',
'password' => 'root',
'database' => 'test',
);
//传入参数非空校验
$user_name = isset($_REQUEST['user_name'])?$_REQUEST['user_name']:'';
$password = isset($_REQUEST['password'])?$_REQUEST['password']:'';
if(empty($user_name) || empty($password)){
die("参数不能为空!");
}
$server = $db_config['host'] . ':' . $db_config['port'];
$db = mysqli_connect($server,$db_config['user'],$db_config['password'],
$db_config['database']) or die('数据库连接错误!'.mysqli_error($db));
mysqli_set_charset($db,"utf-8");
//数字注入
$sql = 'select * from user where name=' . '"' . $user_name .'"'.'and age=' . $password;
echo "<pre>";
print_r($sql);
echo '</pre>';
$result = mysqli_query($db,$sql);
if(!$result){
die("数据库查询失败:" . mysqli_error($db));
}
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
if(empty($row)){
die("用户名或者密码错误!");
}
echo '<pre>';
print_r($row);
echo '</pre>';
echo 'login success';
mysqli_close($db);
?>
查看全部 -
SQL注入是一种将sql代码添加到输入参数中,传递到sql服务器解析并执行的一种攻击手法
查看全部 -
SQL 预处理 sql语句使用?号占位 调用预处理函数,在填充参数
查看全部 -
预编译预防SQL注入以及mysqli操作查看全部
-
SQL注入产生原因查看全部
-
SQL注入概念查看全部
-
-1 or 1=1 '# '--空格查看全部
-
addslashes(对不合法提交内容进行转义)查看全部
-
sql注入攻击 1:数字注入 id=-1 OR 1=1 2:字符串攻击 '# 或 '--查看全部
举报