Как показывает опыт, для начинающих сайтовладельцев вопрос безопасности очень часто стоит ребром. При разработке я, естественно, учитываю программные моменты и всегда консультирую покупателя о проблемах, которые может вызвать человеческий фактор.
"Доброжелатели" используют два основных метода агрессии:
1. Атака непосредственно на программные элементы системы управления контентом.
2. Атака на человеческий фактор – действие через пользователей, клиентов системы.
Хакерские атаки первого рода – на технологические уязвимости
Сторонние SQL-запросы к базе данных
Метод основан на плохой системе фильтрации SQL-запросов. Недостаточный контроль обращений позволяет злоумышленникам несанкционированно создавать любые запросы к базе данных:Получать информацию. Произвольно изменять содержащиеся в таблицах данные. Частично или полностью удалять данные базы.
Рекомендации по защите
Установить контроль длины данных. Вести обработку данных через addslashes или mysql_escape_string. Числовые данные обязательно приводить к заданному типу.Внесение изменений в имена файлов
Как и в предыдущем случае, возможность агрессии основана на недостатках системы фильтрации входящих от пользователя данных. За счет этого злоумышленник получает возможность считывать любые файлы в системе, даже закрытые паролями.Наиболее опасный вариант – PHP-инъекция. Внедрение особых символов на языке С в имена файлов приводит к выходу определенных php-файлов из под контроля администратора сайта и выполнению заданных хакером макрокоманд.
Рекомендации по защите
Не используйте динамические имена файлов. Установите параметры имен и обязательную проверку на допустимость формата имени файла. Дополнительно полезно назначить разрешенные типы символов.Изменение аргумента функции system
Проблема во все той же недостаточной фильтрации данных аргумента функции. Корректируя аргумент функции system, агрессор может задавать использование произвольных скриптов в системе управления контентом. Получается что сайт попадает под постороннее управление.Рекомендации по защите
Включить функции escapeshellcmd, escapeshellarg или другие подобного типа. Задать использование строго определенных типов символов. Проводить проверку допустимых значений по разрешенному списку.Взлом паролей
Если в системе используются простые, слабые пароли, хакеры их легко вычисляют с помощью специальных алгоритмов. Аналогично можно подобрать сессионные идентификаторы.Рекомендации по защите
Всегда используйте сложные, сгенерированные программами-менеджерами пароли, состоящие из большого числа случайных символов. Почаще меняйте пароли доступа. Особенно при подозрении на постороннее вмешательство. Ограничьте до минимума список лиц, имеющих доступ к паролям.Атаки второго рода – на человеческий фактор
Уязвимость межсайтового скриптинга
В основе лежит кража куки авторизованного пользователя. Затем злоумышленник логинится и проводит сессию от имени зарегистрированного участника.В некоторых случаях хакерам удается получить доступ систему с учетной записью администратора серверов, якобы с компьютера, имеющего IP-адрес админа. Тогда злоумышленник получает полный контроль над сайтом.