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


Партнерская программа Kredov

Безопасное добавление данных в БД

#1 Banderas

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

Отправлено 13 Ноябрь 2011 - 01:47

Покажите какими функциями вы делаете безопасное добавление данных в БД! Спасибо!
Например я делаю примерно так:
$title = addslashes($_POST['title']);
$m_key = addslashes($_POST['m_key']);
$m_d = addslashes($_POST['m_d']);
$short_d = addslashes($_POST['short_d']);
$description = addslashes($_POST['description']);

$sql = mysqli_query($db, "UPDATE `items` SET `title`='$title', `m_key`='$m_key', `m_d`='$m_d', `short_d`='$short_d', `description`='$description', `img`='$img', `price`='$_POST[price]', `bimg`='$bimg' WHERE `id`='$_POST[id]'" ) or die(mysqli_error($db));

Ну а при вызове с БД, просто через цикл делаю stripslashes()
Вот так вот:
$sql = mysqli_query($db, 'SELECT * FROM `items` WHERE `id`='.$id.'') or die(mysqli_error($db));
$mas_i = mysqli_fetch_assoc($sql);
foreach ($mas_i as $val) stripslashes($val);

 

 

  • 0


#2 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 13 Ноябрь 2011 - 17:54

mysqli_real_escape_string()... и не нужно мучиться с двойной обработкой addslashes()/stripslashes() ;)
  • 0


#3 Maverick

Maverick
  • Модератор
  • 87 сообщений
  • Репутация: 11

Отправлено 19 Ноябрь 2011 - 23:34

Приветствую! При добавлении данных в БД пользуюсь функцией addslashes. Также проверяю данные перед добавлением в базу на фильтры (числа, строки, буквы) и соответствуют ли они своему формату. То есть, например чтобы в переменной (например Дата рождения) была именно дата рождения (например в формате 11.11.2011) а не буквенные, символьные, и другие плохие знаки и символы.
  • 0

#4 oroom

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

Отправлено 23 Ноябрь 2011 - 12:09

Использую подготовленные выражения, если работаю с чистым php, ни и средства фрейморков, если с ними.
И всем советую попробовать подготовленные выражения, тогда можно забыть о экранировании.
  • 0

#5 admin

admin
  • Пользователь PRO
  • 5 272 сообщений
  • Репутация: 54

Отправлено 23 Ноябрь 2011 - 13:38

oroom, что за подготовленные выражения?
  • 0

Сколько лет прошло, а ссылки всё ещё лучше покупать тут



#6 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 23 Ноябрь 2011 - 14:32

Регулярки, скорее всего... ИМХО не самое лучшее решение.
  • 0


#7 admin

admin
  • Пользователь PRO
  • 5 272 сообщений
  • Репутация: 54

Отправлено 23 Ноябрь 2011 - 14:34

Зачем регулярки, если есть готовые функции, которые работают быстрее?


  • 0

Сколько лет прошло, а ссылки всё ещё лучше покупать тут



#8 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 23 Ноябрь 2011 - 14:42

Вот и я о том же - не самое лучшее решение ;)
  • 0


#9 Banderas

Banderas
    Topic Starter
  • Пользователь
  • 1 168 сообщений
  • Репутация: 1

Отправлено 23 Ноябрь 2011 - 16:12

как вы думаете, как написана функция mysqli_real_escape_string() ???
не думаю что поиск опасных символов сделан через strpos(), хоть она и быстрее..
  • 0


#10 yury

yury
  • Пользователь
  • 629 сообщений
  • Репутация: 176

Отправлено 23 Ноябрь 2011 - 18:31

oroom, что за подготовленные выражения?

См по ссылке: Подготовленные выражения
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


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