[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Like sql injection
forza
Доброе время суток
Помогите защитить запрос с оператором LIKE
К примеру :
$res = mysql_query("SELECT * FROM `table` WHERE `field`LIKE '%".$string."%'");

Если ввести простую SQL Injection -> ' || 'a' = 'a', то он мне выдаст все что есть.
С использованием IRBIS фунцкии mysqlQuery, сразу скрипт останавливается и выскакиевает ошибка.

Как можно защититься? и какие функции надо использовать чтоб не получить sql injection .
П.С. Юзал поиск, но ничего конкретного не нашел, наверное плохо юзал?




Спустя 32 минуты, 41 секунда (6.05.2011 - 23:04) inpost написал(а):
mysql_real_escape_string.

Спустя 54 минуты, 33 секунды (6.05.2011 - 23:59) Nikitian написал(а):
Это чисто для like:
mysql_real_escape_string(str_replace(array('%','_'),array('\%','\_'),$string))

Спустя 9 часов, 27 минут, 20 секунд (7.05.2011 - 09:26) Michael написал(а):
$search = '\\%_';
$search = addcslashes($search, '\\');
$search = mysql_real_escape_string($search);
$search = addcslashes($search, '%_');
$query = "SELECT * from table1 WHERE field1 like '%" . $search . "%'";


кстати, forza , добро пожаловать

Спустя 1 час, 21 минута, 33 секунды (7.05.2011 - 10:48) forza написал(а):
Michael,
Не видел, но что-то подобное я сейчас сам делаю. Вот и столкнулся с такой проблемой с LIKE. Спасибо за помощь с фильтрацией данных wink.gif


_____________
Заработок для веб-разработчиков: CodeCanyon
Мое Портфолио
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.