Автор:Welaurs. Взято из pawno-info. Поиск SQL-инъекции с помощью регулярных выражений В данном мануале я расскажу свой способ обнаружить инъекцию в моде без подробного осмотра. Краткая предыстория: недавно на одном из серверов встал вопрос защиты мода от SQL-инъекций. Мне выпало задание найти и, если таковые есть, устранить. Решение в лоб (поиск по функции отправки запроса к базе) не подходило так как количество строк, которые надо будет проверить, превышало пару тысяч. Исходя из описанной ситуации было принято решение написать несколько регулярных выражений для поиска "слабых" мест Дисклеймер: данный способ НЕ может гарантировать отсутствие инъекций в коде так как писался под конкретный мод. Если вы обладаете достаточными навыками, то без проблем сможете переделать и под свой мод, а для новичков я оставил краткую инструкцию внизу темы. Случай первый: Как работает регулярное выражение: мы ищем строку в которой есть и переменная с нашим соединением, и "небезопасный" оператор %s код: // выражение "UPDATE `accounts` SET `phone` = '%s' WHERE `id` = %i", newPhone, PlayerInfo[playerid][pID]); Случай второй: Как работает регулярное выражение: мы ищем строку форматирования с "небезопасным" оператором %s и обязательно ждем на следующей строке переменную с названием нашего соединения. код: // выражение "UPDATE `accounts` SET `phone` = '%s' WHERE `id` = %i", newPhone, PlayerInfo[playerid][pID]); Инструкция по использованию: | |
Понравилось:
Категория: Статьи San Andreas Multiplayer
Просмотров: 1194
Комментариев: 0
|