Что такое SQL-инъекция и зачем нужен SQL-файервол

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

Что такое SQL-инъекция и как от нее защититься

Как работает SQL-инъеция

Допустим, сайт содержит такой код:

$postId = $_GET['post_id'];
$query = "select title, body from posts where post_id = $postId";

Всё как бы просто: через форму передается идентификатор поста и CMS сайта вытаскивает из БД сам пост. Проблема в том, что юный каккер может подменить передаваемое значение на свое и в строку встроится произвольный код. Этот код может сделать запрос к другой таблице, например, хранящей логины и пароли и вставить туда фейкового суперпользователя. Всё — сайт взломан.

Как защититься от SQL-инъекции

Сделать это достаточно просто. Нужно вспомнить одну из заповедей безопасного программирования: не доверяй данным пользователя. Короче говоря, каждую переменную в запросе надо экранировать. Для этого давно созданы соответствующие функции в каждом языке программирования. Проблема в том, что быдлокодеры постоянно забывают экранировать пользовательский ввод. Из-за этого сайты ломают, данные воруют, наносятся многомиллионные убытки. Из-за одной дебильной ошибки и слабой памяти оператора ЭВМ.

SQL-файервол

И тут британские ученые догадались: если нельзя приучить быдлокодера проверять пользовательский ввод, то нужно поставить систему, которая будет мониторить трафик между быдлокодом и СУБД и блокировать те запросы, которые содержат инжектированный SQL-код. И всего-то! Установил файервол — надежно защитился от целого класса атак. Кто там говорил, что панацеи не бывает?

Существуют ли готовые и бесплатные решения

В том-то и дело, что да — Acra. Софт работает как прокси-сервер между SQL-клиентом и СУБД и фильтрует зловредный код. А еще умеет шифровать данные. Есть встроенная система обнаружения вторжений. Программа отлично себя зарекомендовала в тех областях, где нет права на факап: медицина, финансы, электронная коммерция. Вот ссылка на этот чудософт: Database encryption proxy for data-driven apps: strong selective encryption, SQL injections prevention, intrusion detection, honeypots.

field_vote: 
Ваша оценка: Нет Средняя: 3.6 (44 оценки)
Программное обеспечение: 

Комментировать

Filtered HTML

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.