2013-07-13 42 views
0

於是,我就開始使用的mysqli以提高安全性,這是我的時刻:一個 文件conectar.php安全性的mysqli

<?php 
$DBServer = 'X'; // ip o lo que sea 
$DBUser = 'X'; 
$DBPass = 'X'; 
$DBName = 'X'; 
$conn = new mysqli($DBServer, $DBUser, $DBPass, $DBName); 

if ($conn->connect_error) { 
trigger_error('Database connection failed: ' . $conn->connect_error, E_USER_ERROR); 
    } 
    ?> 

然後它具有以下代碼的PHP文件:

include("admin/conectar.php"); 
$categoria = $_GET['categoria']; 
if($categoria){ 
$query_p = $conn->query("SELECT * FROM `productos` WHERE `categoria` = '$categoria'  ORDER BY nombre ASC"); 
while($result_p = $query_p->fetch_object()){ 
$nombre = $result_p->nombre; 
$referencia = $result_p->referencia;; 
$descripcion = $result_p->descripcion; 
$imagen = $result_p->imagen; 

我應該怎麼做才能防止黑客攻擊或SQL注入?我應該設置一個數組,以便只接受$ categoria的某些值嗎? 謝謝!

+1

參考這個問題的答案:http://stackoverflow.com/questions/60174/how-to-prevent-sql -injection-in-php –

回答

0

切勿將這樣的GET變量用作SQL查詢中使用的變量,因爲有人可以將GET變量的值更改爲「DROP TABLE ...」。 爲了提高代碼的安全性:

+0

爲什麼我得到一個否定的投票? – sinaneker

+0

我正在考慮使用數組,以便如果GET變量不是預期的變量,它不會執行任何操作......這會阻止任何類型的SQL注入?此外,我沒有讀過這個:http://stackoverflow.com/questions/60174/how-to-prevent-sql-injection-in-php但我真的不明白準備好的聲明.... btw:我真的不知道爲什麼你得到了否定的投票,這似乎是一個完美的答案給我 –

+0

@DanielAntónGarcía啊好的!當你想要的時候,我可以教你準備好的陳述是什麼;)在評論出現之前我也寫了這個答案,或者我沒有注意到它。 – sinaneker