Подскажите пожалуйста методы защиты от sql-инъекций через оператор LIKE. Т.к. если я правильно понимаю, функция mysql_real_escape_string здесь не помощник?
Спустя 12 минут, 13 секунд (28.12.2011 - 11:12) Placido написал(а):
Почему не помощник? Помощник.
Спустя 8 минут, 52 секунды (28.12.2011 - 11:21) IPnex написал(а):
Цитата (Placido @ 28.12.2011 - 11:12) |
Почему не помощник? Помощник. |
Цитата |
mysql_real_escape_string не экранирует % и _, поэтому не стоит ее использовать в паре с LIKE |
Спустя 2 минуты, 24 секунды (28.12.2011 - 11:23) Гость_Winston написал(а):
Вот так
Это и будет защита от инъекции и будет корректно происходить поиск символов которые в SQL считаются специальными.
'...LIKE '%" . addcslashes(mysql_real_escape_string($search), '%_\\\'') . "%'....'
Это и будет защита от инъекции и будет корректно происходить поиск символов которые в SQL считаются специальными.
Спустя 15 минут, 51 секунда (28.12.2011 - 11:39) IPnex написал(а):
Гость_Winston спасибо!
Спустя 15 дней, 23 часа, 42 минуты, 12 секунд (14.01.2012 - 11:21) Семён написал(а):
Не могли бы показать как в практике применяется инъекция через LIKE без экранирования слэшей?
'%'.mysql_real_escape_string($var).'%'
Спустя 34 минуты, 55 секунд (14.01.2012 - 11:56) inpost написал(а):
Глупости всё это, просто будет не та строка найдена, и всё. Никаких уязвимостей, человек использует поиск, а возможность в поиск использовать _% - только лишь расширение функционала самого поиска. Поэтому, если есть желание сказать, что ваш поиск стал ещё круче, просто укажите, что он поддерживает эти 2 символа.