Anti-hack des arguments

23 February 2017

//-- anti hack des arguments --------------------------------------
function check_arg($key,$type='s',$pardefaut='',$len=80) {

 // change l'odre de $_REQUEST[$key]

 if($key=="email") {
   if(isset($_GET[$key] )) { $arg = $_GET[$key]; }
   else {
     if(isset($_POST[$key] )) $arg = $_POST[$key];
     else
       if(isset($_COOKIE[$key] )) $arg = $_COOKIE[$key];
       else if(isset($_SESSION[$key] )) $arg = $_SESSION[$key];
     else $arg=$pardefaut;
   }
 }
 else {
  if(isset($_REQUEST[$key])) $arg = $_REQUEST[$key];
  else $arg=$pardefaut;
 }

  switch ($type) {
    case 's': // string
        $arg = substr($arg,0,$len);
      break;
    case 'sd': // string database
      $trans = array("%" => "", "," => "", ";" => "");      // anti hack db
      $arg =  trim(strtr(substr($arg,0,$len),$trans));
      break;
    case 'n':  // nombre
      $arg = $arg + 0;
    default:
      $arg = trim($arg);
  }

  return($arg);
}

Si quelqu’un comprend ce qui ce passe, qu’il n’hésite pas à m’éclairer… Mention spécial pour ce passage :\

 $trans = array("%" => "", "," => "", ";" => "");       // anti hack db
 $arg =  trim(strtr(substr($arg,0,$len),$trans));