Как взламавают сайты и как защититься от взлома

Mysql инъекции
Способы защиты от хакеров: защита файловой системы и защита от mysql инъекций.

Большинство систему управления сайтом таких как друпал, вордпресс, джумла, опен карт и другие по умолчанию защищены от большинства видов атак, но и в них время от времени находят дыры. Такие дыры надо латать и как можно быстрее. Про большинство самописных скриптов, написанных на коленках, вообще не хочется говорить. Наверняка там есть дыры, просто о них еще никто не знает…

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

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

Предотвращение SQL инъекций

Очень часто в адресной строке сайта размещаются параметры, влияющие тем или иным образом на содержание страницы. Например эти параметры могут быть значением, подставляемым в mysql запрос.

Например, ссылка вида: site.ru/index.php?pageid=100 . Параметр pageid = 100 говорит о том, что нужно выбрать из какой-то таблицы строку с идентификатором = 100.

Злоумышленник, же как всегда может что-то подправить в адресной строке и получить дополнительные плюшки вплоть до логинов/паролей, удаления все базы данных или получения полного управления вашим сайтом.

Как узнать возможна ли mysql инъекция на вашем сайте

Самый простой вариант проверки – написать вместо site.ru/index.php?pageid=100 вот такой код: site.ru/index.php?pageid=99+1.

Если параметр pageid не фильтруется, то перед выполнением sql инъекции произойдёт сложение 99 и 1. В результате вы увидите страницу с pageid=100.

Если вам показывается страница отличная от страницы с параметром pageid=100, значит входной параметр проверяется… Однако, не зная способа проверки параметров у сайта, неизвестно фильтрует ли он все лишние символы или нет. Так что угроза взлома все еще существует…

Как защищаться от mysql инъекций

Защита от sql инъекций – это фильтрация используемых в mysql запросе параметров и приведение их к необходимому виду. В нашем случае мы знаем, что параметр pageid должен быть числом, т.е. должен содержать только цифры. Значит перед выполнением mysql запроса мы должны проверить является ли параметр числом и если не является, то выдать ошибку или привести значение в число.

Только методичная и тщательная проверка вводимых данных и их фильтрация защитят от mysql инъекций. В помощь могут прийти уже разработанные классы для работы с базами данных.

Защита файловой системы веб сервера

Все скрипты, располагаемые на стороне веб сервера могу выполнять произвольные действия с файлами и папками. В результате потенциальный взломщик может попытаться либо использовать уже существующие скрипты, либо загрузить свои скрипты и выполнить их.

Основной способ защиты – ограничение прав доступа к папкам и файлам. Для папок по умолчанию в линукс системах ставятся стандартные права доступа (CHMOD) 644, для файлов – 755.

Если ваш скрипт в зависимости от параметра выполняет подключение или получение данных от различных файлов, то этот параметр обязательно нужно фильтровать!!! В противном случае злоумышленник (хакер) может получить полный или частичный доступ к файловой системе вашего сайта.

Выводы

Как вы уже удостоверились — защита от хакерских атак заключается в проверке (валидации) всех вводимых параметров.

VN:F [1.9.22_1171]
Rating: 4.5/5 (2 votes cast)
Как взламавают сайты и как защититься от взлома, 4.5 out of 5 based on 2 ratings

Комментарий о “Как взламавают сайты и как защититься от взлома

  1. Надо подходить к делу профессионально. Необходимо оценить возможный ущерб от несанкционированного доступа и принять меры, соответствующие вашему ущербу.

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*