Перейти к содержимому

Реферальная программа Мегаплана


  • Закрытая тема Тема закрыта

Защита от SQL иньекций

#1 aspide

aspide
  • Пользователь
  • 185 сообщений
  • Репутация: 1
0

Отправлено 04 Декабрь 2010 - 13:43

Здравтвуйте!

У меня такая проблема,

mysql_query("INSERT INTO posts SET id=$i, threadid=$bid,  text='".$ttext."',  user=$uid, pepyaka=0, ip='$ip', deleted=0, image='$timg', usernick='$tnick'");


Например параметр $bid берётся из request-запроса, а злоумышленник ведь может укзать всё, что угодно, например сделать зацикливание, и от этого нужно как-то защитится. Только пока моего опыта в php мало, подскажите, как можно бы было защитится от иньекций, какой алгоритм вы используете?

 

 

  • 0

#2 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 04 Декабрь 2010 - 16:39

я так делаю:

function MagicQuotes($module)
{
$module = get_magic_quotes_gpc() ? stripslashes($module) : $module;
$module = trim($module);
return $module;
};


$num = intval($_POST['num']);
$name = MagicQuotes($_POST['name']);


$sql = "INSERT INTO `acatalogue` VALUES(
'',
$num,
'".mysql_real_escape_string($name)."'
)";


при условии, что $num это число, а $name это строка, ищи тут эта тема не раз обсуждалась
  • 0

#3 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 04 Декабрь 2010 - 23:05

Aspid, по защите от инъекций уже много раз обсуждалось на форуме, расписывать не имеет смысла.
А вот по поводу зацикливания уточните с помощью примера, коим образом получится зацикливание...
  • 0

#4 donriga

donriga
  • Пользователь
  • 14 сообщений
  • Репутация: 0

Отправлено 02 Март 2011 - 13:36

$a[$key] = strip_tags($a[$key]);

		$a[$key] = stripslashes($a[$key]);

		$a[$key] = str_replace(array("'", '"'), array(''', '"'), $a[$key]);

получается достаточно эффективная защита
  • 0


Оформление форума – IPBSkins.ru