我有一个发送到外部网站的用户表单,并且来自该网站的响应包含唯一代码(如“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