Как стать автором
Обновить

Комментарии 13

А теперь все полезут регаться на сайтиках с логином %%%%%%% ;)
Интересно, что это будут за сайты…
кто-то использует like при проверке рег. данных?
Нет, при проверке не используют. Зато после регистрации открывается множество функционала, где LIKE может присутствовать от какого-нибудь $_SESSION['username']
Какого например функционала? Не получается ничего представить использующее LIKE кроме поиска.
Вот dookie отвечал, что при пентесте авторизацию находил на его основе )
Чаще всего, это действительно поиск.
Из моей практики, в корпоративном приложении из $_SESSION['email'] вырезался домен и выводились пользователи, которые с авторизованным пользователем в одной домене.
Таким образом, email вида vasya@%%%%%%% давал нам возможность вывести весь список пользователей системы, а не только разрешенных — своего домена.
Я видел приложение, у которого аутентификация была по like.

Типа password=% вот и весь хак 8)
Может password like %?
Вы наверно видели что-то в ф-ции sprint_f, это не баг, и статья не об этом :-)
Я имел ввиду: вводим в качестве пароля % и все, байпас аутентификации 8)
LIKE, как правило, используется в запросах для поиска по сайту и прочего подобного функционала, где нужен именно нечёткий поиск с возвратом большого количества результатов, поэтому, имхо, большой беды в том, что Вы написали нет. За исключением, наверное, тех случаев, когда сервер не сможет обработать запрос ввиду чрезмерно большого количества результатов и скрипт выдаст ошибку, содержащую некоторое количество информации о структуре БД (теоретически, большое количество таких запросов может нейтрализовать нормальную работу сайта).

Но это уже вопрос, скорее, к настройкам сервера и перехвату ошибок, чтобы не показать пользователю то, что видеть ему не следует.
В случаях, которые вы описали, таких как поиск по сайту ничего страшного, кроме увеличения нагрузки, действительно нет. Но зачем давать возможность выгрузки всего проиндексированного содержимого, если логика поискового запроса подразумевает поиск по каким-то критериям, а не по их отсутствию.
По всем призанакам — это уязвимость обхода логики.
Да там и увеличение нагрузки–то будет только в том случае, если нет ограничения на количество выводимых результатов, потому как по своей сути запрос вида 'LIKE "%"' ничем не отличается для базу от запроса 'LIKE "%some%words%"'.

Насчёт второго аргумента соглашусь условно. В том смысле, что ничего криминального не вижу в том, чтобы отдать пользователю всё и сразу, раз он так захотел — пусть сам роется или сужает рамки поиска вводом адекватных критериев, но если логика приложения к такому не готова, то это, наверное, плохо. :)
Ничего криминального, согласен. Безопасность — это не всегда страшные уязвимости, которые позволяют взломать Яндекс. Иногда это просто нарушение какой-то модели.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации