Защита БД от sql-инъекций

Итак, наверняка все знают о sql-инъекциях и все знаю как не приятно когда злоумышленник пользуется этим. Я нашёл самое простое решение избавления от sql-инъекций при помощи фильтрации запросов в nginx.

SQL-инъекции — встраивание вредоносного кода в запросы к базе данных — наиболее опасный вид атак. С использованием SQL-инъекций злоумышленник может не только получить закрытую информацию из базы данных, но и, при определенных условиях, внести туда изменения.

Все мы знаем, что для того что-бы вытащить хоть что-то из БД необходимо подобрать таблицы, а для этого как правило выполняют команду вида:

script.php?bug=-1+UNION+SELECT+1,2,3,4,5

в этом коде фигурируют команды union и select, select – одна из самых значимых команд в mysql, соответственно что-бы обезопасить себя нам необходимо блокировать все запросы от клиента с этой командой. Делается это очень легко, в виртуальном хосте nginx`a прописываем:

if ($request_uri ~* «SELECT») {
return 401;
}

и всё, если клиент попытается подставить эту команду то в ответ он получит ошибку 401. Таким же способом можно заблокировать и остальные нежелательные команды.

Статья взята с snifer.ru


Понравилась статья? Поделись с остальными.

Комментарии закрыты.