万能用户名
any’ union select * from user – (后面有个注释符)
联合查询,是查询的结果大于1,为真
万能用户名防御
PDO
$username=$REQUEST['usernm'];
$password=$_REQUEST['passwd'];
$pdo=new PDO("mssql:host=127.0.0.1;dbname=users","sa","root");
$sql="select * from users where username=? and password=?";
$statment=$pdo->prepare($sql);
$statment->execute(array($username,$password));
$res=$statment->fetch();
if(!empty($res)){
header("location:success.php");
}
else{
header("location:failure.php");
}
解释:
给PDO这个类赋值,赋给pdo这个对象
sql数据库中的查询语句赋值给$sql
pdo这个对象使用方法prepare() 给sql语句固定一个模式
为 prepare 方法准备要执行的SQL语句,SQL语句可以包含零个或多个命名(:name)或问号(?)参数标记,参数在SQL执行时会被替换。
你不能在 SQL 语句中同时包含命名(:name)或问号(?)参数标记,只能选择其中一种风格。
预处理 SQL