2014-10-27 62 views
-2

這段代碼是否被很好的保護,如果不能,你能告訴我如何保護它。我使用Mysqli ...另外,我希望有人告訴我,如果它不安全,這可以被利用嗎?Mysqli的安全代碼

if(isset($_POST['vrsta_predmeta']) AND !empty($_POST['vrsta_predmeta']) AND 
    isset($_POST['res_text']) AND isset($_POST['glavni_dug']) AND isset($_POST['res']) AND 
    isset($_POST['zaklj']) AND isset($_POST['povjerilac']) AND isset($_POST['duznik']) AND 
    isset($_POST['predmet_zaveden'])){ 

    $racunob = trim($_POST['rac']); 
    $obrazlozenje = trim($_POST['obr']);  
    $ob_text = trim($_POST['res_ob']); 
    $res_text = trim($_POST['res_text']); 
    $vrsta_pre = trim($_POST['vrsta_predmeta']); 
    $izvrsenje = trim(strtolower($_POST['res'])); 
    $obrazac = trim($_POST['zaklj']); 
    $povjerilac = $_POST['povjerilac']; 
    $duznik = $_POST['duznik']; 
    $datum= trim($_POST['predmet_zaveden']); 
    foreach($povjerilac as $key){ 
     $lica = $db -> prepare("INSERT INTO p_lica(povjerilac, doc_br, dokument_vlasnik) VALUES('$key', '$dok_broj', '$ses_val')"); 
    }  

    foreach($duznik as $key1){ 
     $lica1 = $db -> prepare("INSERT INTO d_lica(duznik,doc_br, dokument_vlasnik) VALUES('$key1', '$dok_broj', '$ses_val')"); 
    } 

    $insert_dok = $db -> prepare("INSERT INTO document_tbl(dokument_vlasnik,dokument_broj,vrsta_dokumenta,zakljucak, resenje_izvrsenja,datum,resenje_text,obrazlozenje,obtext,racunob) VALUES('$ses_val','$dok_broj', '$vrsta_pre','$obrazac','$izvrsenje','$datum','$res_text','$obrazlozenje','$ob_text','$racunob')"); 
    if($lica -> execute() AND $insert_dok -> execute() AND $lica1 -> execute()){ 
     $lica -> close(); 
     $lica1 -> close(); 
     $insert_dok -> close(); 
     echo '<script>new Messi(\'Dokument uspjesno dodat.\', {title: \'Obavjestenje\', titleClass: \'success\', buttons: [{id: 0, label: \'Close\', val: \'X\'}]});</script>'; 
     header('location:login.php'); 
    }else{ 
     echo '<script>new Messi(\'Dokument uspjesno dodat.\', {title: \'Obavjestenje\', titleClass: \'anim warning\', buttons: [{id: 0, label: \'Close\', val: \'X\'}]});</script>'; 
    } 

} 
+4

這個問題似乎是脫離主題,因爲它是一個**代碼審查請求**。這更適合於[Code Review Stack Exchange站點](http://codereview.stackexchange.com)。在發佈之前,請務必閱讀他們的[FAQ](http://codereview.stackexchange.com/help),以確保您的問題符合他們的指導原則。 – 2014-10-27 14:51:31

回答

0

即使您使用的是準備好的語句,您當前也直接將用戶輸入附加到查詢中。看看the documentation of prepared statements。關於爲什麼以及如何使用準備好的語句,有很多示例和清晰的解釋。

+0

我應該使用bind_param嗎? – user3561857 2014-10-27 14:57:31

+0

正如您在上一個問題中發佈了使用**參數化查詢的PDO示例 - 是的,您應該使用bind_param。 – 2014-10-27 16:03:43