-
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:字符串攻擊 '# 或 '--查看全部
舉報