2013-08-11 2 views
-1

Я искал и добавил код предупреждения, но мне нужен совет экспертов, я прав?Будет ли мой код предотвращать SQL-инъекцию

Я сделал отдельный файл для подключения SQL, но у меня есть путаница, следует ли использовать include, require, include_onces или любой другой?

mysql_connect("localhost", "userr", "pass") or die(mysql_error()) ; 
mysql_select_db("databse") or die(mysql_error()) ; 

Здесь я добавил две вещи UTF8 и mysql_real_escape_string.

$bad='anyone123'; 

$var = mysql_real_escape_string($bad); 
$q = mysql_query('SET user_id UTF8'); 
$q = mysql_query("SELECT * FROM fbusers WHERE user_id = '$var'"); 
$r = mysql_fetch_array($q); 

Пожалуйста, дайте мне совет, как я могу предотвратить вред. до 100% я не хочу, чтобы мой сайт, чтобы быть взломан :(

Спасибо

+2

Используйте pdo вместо mysql_ для начала –

+0

или mysqli, так как mysql устарел –

+0

В чем проблема в mysql? Я закодировал свой сайт в mysql :( – user2615947

ответ

0

Вы должны использовать подготовленные заявления для любых запросов, которые требуют ввода данных пользователя. Это посылает запрос и параметры отдельно и действует как слой безопасности, чтобы поймать любой вредоносный ввод

в PDO:.

$stmt = $pdo->prepare("SELECT * FROM fbusers WHERE user_id = :var"); 

$stmt->execute(array(':var'=>$var)); 

в MySQLi:

$stmt = $dbConnection->prepare('SELECT * FROM fbusers WHERE user_id = ?'); 
$stmt->bind_param('s', $var); 

$stmt->execute(); 

Возможно, this post поможет.

+0

Я был бы очень признателен, если бы вы могли дать в mysqli, а не pdo – user2615947

+0

Да, спасибо, это поможет :) – user2615947

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