我正试图在我创建的一个虚拟站点上使用SQL注入,以检查我是否可以入侵它,但尽管我没有对其进行消毒,但该站点似乎是安全的。当我在phpMyAdmin上运行用于注入的查询时,一切似乎都很好,查询也在运行,所以我想知道为什么当我以使用post方法的简单形式输入数据时,它不起作用。
$myusername=$_POST['username'];
$mypassword=$_POST['password'];
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1)
{
echo "login success";
}else {
echo "login fail";
}
那么,有人能向我解释一下为什么这些数据不容易被SQL注入吗?我用来破解网站的线路是以下
' or ' 1=1
我将其添加到两个输入字段
您的代码不安全:
$myusername=$_POST['username'];
$myusername = " ' or 1=1 LIMIT 1; -- "; // this will allow me to log in