SQL-инъекции - относительно простой, но отнюдь не безобидный способ "взлома" сайта. Владея минимальными навыками, злоумышленник может получить доступ к аккаунтам пользователей и даже самому серверу.
Зачастую целью атаки на сайт со стороны злоумышленника является не просто выведение его из строя, а получение каких-либо данных и просто доступа к базе данных. Последнее и подразумевают под словом взлом. Наиболее распространенным способом взлома являются SQL-инъекции.
Чтобы объяснить, что это такое, и каким образом производится, необходимо отметить, что любой достаточно объемный сайт создается на основе базы данных. Для того, чтобы работать с информацией, расположенной в базе, используют язык запросов SQL. Под SQL-инъекцией подразумевают внедрение в SQL-запрос того или иного кода, позволяющего проникнуть в БД и получить какие-либо данные и полномочия.
В случае, если сайт не защищен от данного рода действий, хакер может получить доступ к любым таблицам и возможность управлять данными, удалять, добавлять, изменять их по собственному разумению. Довольно часто SQL-инъекции используются для взлома аккаунтов пользователей. Злоумышленник может получить доступ к почте, аккаунту на форуме или в социальной сети. Сам ресурс в этом случае не страдает – страдают пользователи. Впрочем, нередко целью такой атаки является и профиль администратора.
SQL-инъекции требуют минимальных навыков и чаще всего не нуждаются в каких-либо специальных программах. Злоумышленник просто вводит в адресную строку нужные значения и получает доступ к данным.
Возможно это, если адреса страниц генерируются с помощью php. Адрес может выглядеть так: http://xxx.ru/index.php?ttt=iii&ddd=ggg, где под ttt и другими знаками подразумеваются определенные значения. Такие адреса содержат в себе информацию, которую может использовать злоумышленник. Переменные могут быть изменены в адресной строке с помощью ручного ввода.
С помощью SQL-инъекций взломщик может получить данные о пароле и логине администратора и любого другого зарегистрированного пользователя сайта. При этом структура таблиц нисколько не нарушается, и обнаружить взлом можно только в том случае, если злоумышленник решит что-либо изменить на сайте или сменить пароль. Если позволяет система, узнать о взломе можно и по наличию незнакомого ip-адреса.
Как защитить сайт от SQL-инъекций?
Не стоит уповать на хостинг-провайдера – ответственность за защиту от SQL-инъекций несут только разработчики сайта. Вернуть доступ к сайту, если он был взломан, довольно сложно, гораздо проще применить профилактические меры. Их, по сути, всего две:
- Использование динамических запросов (адресов) только в случае крайней необходимости;
- Разделение пользовательских данных и запросов.
Существуют определенные программы и инструменты для выявления и устранения инъекций, и пользоваться ими также стоит.