SQL инъекция

SQL инъекции один из самых распространенных методов взлома сайтов. Такая уязвимость возникает из-за ошибок в программном коде сайта, которые допустил программист в силу разных причин. У обычного статичного сайта, который состоит только из HTML файлов такой проблемы нет, однако таких сайтов сейчас практически нет, все сайты работают на каком-либо серверном языке программирования. Большая часть информации сайта хранится в базе данных, т.к. работать с ней легко и просто. При переходе между страницами браузер посылает серверу запросы (POST или GET), а так же значения Cookie. Рассмотрим наш сайт, https://www.masterflash.ru/articles/Ujazvimosti-na-sajte-chto-eto-takoe-i-kak-izbezhat-vzloma - здесь последний элемент URL имеет важное значение, т.к. по нему в таблице базы данных производится поиск записи, и после того как она будет найдена, информация поступает в браузер посетителя. Кроме обычных пользователей, которые просто переходят по ссылкам, есть и плохие парни, они могут просто изменить эту строку в адресной строке браузера и вот в этот момент есть риск возникновения SQL инъекций.

Обычно поиск в базе данных производится командой вроде этой:
Select * from news where url=’$url’, где $url это последний элемент нашего URL.

Эту строку можно изменить так, что запрос изменится и изменит информацию в таблице базы данных, или удалит что-либо. Аналогично POST запросы и Cookie, которые обрабатываются аналогично. Если злоумышленник видит ошибку отличную от 404, значит этот раздел подвержен атаке.

Уязвимости на сайте, SQL инъекции что это такое и как от нее защититься

Методы защиты от SQL инъекции

Раннее разработчики PHP добавили в функционал экранирование поступающих данных из браузера, т.е. экранировались кавычки, т.к. эти играют очень важную роль. Такое экранирование называлось «магическим». Однако, это только усложнило программу и не решило проблему, поэтому позже это удалили. Теперь вся ответственность лежит на программисте. Для исключения уязвимости обязательно нужно проверять поступающие данные, фильтровать их, и использовать параметрические запросы в базу данных, а не напрямую подставлять строки в SQL запросы.

Программисты студии «Мастер Флеш» используют свой пакет работы с базой данных, он является оберткой для подсистемы PDO. Сам Zend Framework имеет множество средств для фильтрования и проверок поступающей информации, что значительно уменьшает риск возникновения SQL инъекций.

Веб-студия "Мастер Флеш"
+7 (928) 416 53 03
ул. Зиповская 5/2 350010 Россия, г.Краснодар

Перейти к списку