phpコード学習(二)空白フィルタリングを迂回する


ブランクフィルタを迂回
 $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