我有一個發送到外部網站的用戶表單,並且來自該網站的響應包含唯一代碼(如「a87ju89y」)。該代碼對我來說很重要,所以使用準備好的語句將其輸入到我的數據庫中。第二階段SQL注入
在後端我有一個運行PHP腳本,查詢數據庫,看看是否有新的代碼這樣每分鐘一個cronjob:
$con = mysqli_connect($servername, $username, $password, $database);
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$results = mysqli_query($con, "SELECT user FROM stack ORDER BY ID");
$cronresults = mysqli_query($con, "SELECT run FROM kook ORDER BY ID");
$row = mysqli_fetch_assoc($results);
$cron = mysqli_fetch_assoc($cronresults);
$row2 = $row['user'];
$cron2 = $cron['kook'];
我的問題是,我需要一份準備好的聲明簡單地提取信息並阻止某種SQL注入?如果我做我該怎麼做呢?
第二級噴射時,另一個查詢。假設你從表中選擇了userdata,然後從userdata中刪除了userid ='。 $ row ['userdata']',期望'userdata'是一個id,但它實際上有'0或1 = 1'。現在所有數據都將消失。請參閱https://en.wikipedia.org/wiki/SQL_injection#Second_order_SQL_injection – chris85
沒有什麼意義,謝謝! – electricjelly
幾乎任何時候你傳遞一個值給SQL使用參數化查詢,不要只傳入它。 – chris85