SQL-инъекция - это атака, при которой злоумышленник вводит в обычное поле на сайте (поиск, логин, фильтр каталога) не текст, а команду для базы данных. Если код сайта передаёт введённое в базу без проверки, база выполняет чужую команду: отдаёт список клиентов с телефонами, пароли, заказы - или удаляет всё разом. Это одна из старейших и до сих пор самых результативных атак: от неё не спасают ни антивирус, ни сложные пароли - только правильно написанный код.
Как работает SQL-инъекция на живом сайте
Почти каждая страница сайта - это запросы к базе данных: покажи товары дешевле 100 рублей, найди пользователя с таким логином и паролем. Параметры для запросов приходят от посетителя - из форм, адресной строки, фильтров. Уязвимость возникает, когда программист вставляет эти параметры в запрос как есть, без экранирования. Тогда специально составленная строка «ломает» синтаксис запроса и дописывает к нему свою часть: обойти проверку пароля, вытащить соседнюю таблицу, записать в базу вредоносный код.
Ищут такие дыры не вручную: боты круглосуточно прогоняют по всем сайтам подряд типовые пробы и помечают уязвимые. Дальше - дело техники: автоматика выкачивает базу за минуты. Поэтому «мы маленькие, кому мы нужны» не работает - сканерам всё равно, чей сайт. Средний коммерческий сайт ловит первые пробы инъекций уже в первые недели после запуска: это фоновый шум интернета, а не чья-то месть.
Чем SQL-инъекция грозит бизнесу
- Утечка базы клиентов - имена, телефоны, адреса, история заказов уходят конкурентам или в открытую продажу
- Ответственность за персональные данные - в Беларуси утечка ПД - это проверки и штрафы по закону 99-З, плюс обязанность уведомить оператора
- Угон админки - хэши паролей из базы перебираются на мощном железе, дальше злоумышленник входит как администратор
- Заражение сайта - через запись в базу подсаживают редиректы и скрипты, сайт попадает в чёрные списки поисковиков
- Потеря данных - в худшем сценарии базу просто удаляют или шифруют с требованием выкупа
Как защититься от SQL-инъекций: три уровня
- Правильный кодЕдинственная настоящая защита: параметризованные запросы и экранирование всего, что приходит от пользователя. В Битрикс это API платформы (ORM, D7) вместо «сырых» SQL-запросов - штатные методы экранируют параметры сами.
- Проактивный фильтрВстроенный в Битрикс WAF перехватывает типовые инъекции до исполнения. Это страховочная сетка: она ловит массовые атаки, но не заменяет исправление уязвимого кода.
- Минимизация ущербаПользователь базы данных сайта не должен иметь прав администратора СУБД, бэкапы - ежедневные и хранятся отдельно от сервера. Тогда даже успешная атака не станет катастрофой. И проверьте, что бэкапы реально разворачиваются: копия, которую никто не пробовал восстановить, - это надежда, а не резерв.
Проверим ваш сайт на SQL-инъекции
Проведём аудит кода и форм, найдём уязвимые места и перепишем опасные запросы на безопасное API. Особенно актуально для самописных модулей и старых доработок.
Как понять, что сайт уже пробуют на SQL-инъекции
Откройте журнал вторжений в проактивной защите Битрикс: попытки инъекций там помечаются отдельным типом события, с адресом источника и телом запроса. Те же следы видны в логах веб-сервера - однотипные запросы со странными «ломаными» параметрами. Признаки того, что атака могла удаться: ошибки базы данных на страницах, где их раньше не было, замедление сайта при обычном трафике, незнакомые администраторы в списке пользователей и клиенты, жалующиеся на спам-звонки после заказа именно у вас.
Откуда берутся уязвимости на сайтах с Битрикс
Ядро Битрикс защищено неплохо: параметризованные запросы, проактивный фильтр, регулярные обновления безопасности. Дыры почти всегда живут в другом месте: самописные компоненты «от прошлого подрядчика», интеграции, написанные в спешке, старые модули с маркетплейса, которые никто не обновлял годами, и прямые SQL-запросы в шаблонах. Чем больше на сайте нештатного кода, тем нужнее аудит: уязвимость в одной забытой форме обесценивает всю защиту платформы. Хороший маркер риска - возраст кода: если доработки писались много лет назад и с тех пор не проходили ревизию, аудит почти наверняка найдёт что чинить.
Частые вопросы о SQL-инъекциях
Как проверить сайт на SQL-инъекции без программиста?
Защищает ли Битрикс от SQL-инъекций из коробки?
У нас утекла база клиентов. Что делать по закону?
Сколько стоит аудит сайта на уязвимости в Беларуси?
SQL-инъекция - атака на качество кода, поэтому и защита - это качество кода. Если на сайте есть самописные модули, старые доработки или формы, написанные неизвестно кем, закажите аудит: в рамках доработки сайтов Alavir находит и переписывает уязвимые места, а абонентская поддержка держит платформу обновлённой и фильтры включёнными. С 2013 года, 450+ проектов, официальный партнёр 1С-Битрикс.












