首先对strcmp()这个函数:
int strcmp ( string $str1 , string $str2 )
参数 str1第一个字符串。str2第二个字符串。如果 str1 小于 str2 返回 < 0; 如果 str1 大于 str2 返回 > 0;如果两者相等,返回 0。传入的应该是字符串类型,但传入的不是字符串类型呢?
<?php
$password="****"
if(isset($_POST['password'])){
if (strcmp($_POST['password'], $password) == 0) {
echo "login success";
exit();
} else {
echo "Wrong password..";
}
?>
对于这一段代码,要想绕过验证只需要post一个数组或一个object,PHP为了可以上传一个数组,会在变量后加[],即password[]=admin即可绕过成功。