2014-02-06 1 views
-2

я следующий метод в моем PHP классе CRUD:надежного ввода из URL и сделать свой вклад взломом сейф

//secure search method 
    function secureInput($ary = array()){ 
     $this->connect(); 
     $securedArray = array(); 
     //print_r($ary); 
     foreach($ary as $val){ 
      //echo($val.'<br />'); 
      $val = str_replace("'","",$val); 
      $val = str_replace("#","",$val); 
      $val = str_replace("~","",$val); 
      $val = str_replace("!","",$val); 
      $val = str_replace("%","",$val); 
      $val = str_replace("*","",$val);  
      $val = str_replace("drop","",strtolower($val)); 
      $val = str_replace("show","",strtolower($val)); 
      $val = str_replace("insert","",strtolower($val)); 
      $val = str_replace("create","",strtolower($val)); 
      $val = str_replace("update","",strtolower($val)); 
      $val = str_replace("select","",strtolower($val)); 
      $val = str_replace('"',"",$val); 
      $val = str_replace("+","",$val); 
      $val = str_replace(";","",$val); 
      $val = mysql_real_escape_string($val); 
      $securedArray[] = $val; 
      } 
      return $securedArray; 
     }  

Я хочу использовать следующий код, чтобы принимать входной сигнал и вернуть чистый вход (хакерство XSS доказательств вход), а затем использовать его для моих запросов к базе данных, таких как обновление вставки и извлечения и т.д.

require_once('classes/classes.php'); 
$crud = new CRUD(); 
$ar = array("Shah Hussai#n","shahhus';sai;'n3#[email protected]","",234); 
$name = "";$email = "";$empty ="";$int = ""; 
$ary = $crud->secureInput($ar); 
if(!isset($ary[0]) || empty($ary[0])){ 
    echo("Please provide your name<br />"); 
    } 
else{ 
    //update variables here 
    $name = $ary[0]; 
    $email = $ary[1]; 
    $empty = $ary[2]; 
    $int = $ary[3]; 
    }//if 
echo $sql = "INSERT INTO tbl(name,email...) values($name,$email,$empty,$int)"; 

Теперь я не уверен, как это будет защитить свой код от хакеров Cross сценариев и попыток SQL-инъекции? или я должен сделать что-то еще для безопасного ввода?

Заранее спасибо

ответ

1

Для защиты SQL Инъекции это будет лучше всего использовать Prepared Statement .Provided ссылки поможет вам в этом деле.
Для других рисков вам лучше быть конкретными, чтобы получить ответ.

Смежные вопросы