phpコード学習(二)空白フィルタリングを迂回する
ブランクフィルタを迂回
感謝:bowu 678プロジェクトhttps://github.com/bowu678/php_bugs
is_numeric():数値intval()であるか否かを判断する:整数strval()を取る:反addslashesを取る:反スラッシュ参照
論理は:1、numberが数字ではないことを要求します.2、numberフィルタリングを要求する前は数字(かつ整数)である.3、numberフィルタリングを要求する後は回文数である.4、numberが回文数ではないことを要求する.(このような変態ではないか?)だからアクセスする:http://localhost/filter.php?number=131(%00はスペースカット、%0 cは/fエスケープ)
感謝:bowu 678プロジェクトhttps://github.com/bowu678/php_bugs
$value)
{
$value = trim($value); //trim — ( )
is_string($value) && $req[$key] = addslashes($value); // is_string — ,addslashes —
}
}
function is_palindrome_number($number)// ,
{
$number = strval($number); //strval —
$i = 0;
$j = strlen($number) - 1; //strlen —
while($i < $j)
{
if($number[$i] !== $number[$j])
{
return false;
}
$i++;
$j--;
}
return true;
}
// ,
if(is_numeric($_REQUEST['number']))
{
$info="sorry, you cann't input a number!";
}
elseif($req['number']!=strval(($req['number']))) //intval —
{
$info = "number must be equal to it's integer!! ";
}
else
{
$value1 = intval($req["number"]);
$value2 = intval(strrev($req["number"]));
if($value1!=$value2)
{
$info="no, this is not a palindrome number!";
}
else
{
if(is_palindrome_number($req["number"]))
{
$info = "nice! {$value1} is a palindrome number!";
}
else
{
$info=$flag;
}
}
}
echo $info;
感謝:bowu 678プロジェクトhttps://github.com/bowu678/php_bugs
is_numeric():数値intval()であるか否かを判断する:整数strval()を取る:反addslashesを取る:反スラッシュ参照
論理は:1、numberが数字ではないことを要求します.2、numberフィルタリングを要求する前は数字(かつ整数)である.3、numberフィルタリングを要求する後は回文数である.4、numberが回文数ではないことを要求する.(このような変態ではないか?)だからアクセスする:http://localhost/filter.php?number=131(%00はスペースカット、%0 cは/fエスケープ)
感謝:bowu 678プロジェクトhttps://github.com/bowu678/php_bugs