1. Используйте надежное программное обеспечение.
Загружайте дистрибутивы веб-приложений и расширения/плагины для CMS из проверенных источников.
Регулярно обновляйте CMS и серверное ПО, следите за новостями об уязвимостях используемой CMS.
Регулярно проводите аудит безопасности серверов.
После установки CMS удаляйте установочные и отладочные скрипты.
2. Используйте сложные пароли от веб-серверного ПО (FTP, SSH, административные панели хостинга и CMS).
Сложный пароль содержит не менее 11 символов и включает в себя буквы в разных регистрах, цифры, и специальные символы.
Не используйте одинаковые пароли для доступа к разным сервисам.
Даже самые надежные пароли рекомендуется менять раз в три месяца, чтобы обезопаситься от случайной утечки.
Не сохраняйте важные пароли в веб-браузерах, файловых менеджерах, а также FTP-, SSH- и прочих клиентах.
3. Следите за безопасностью рабочих компьютеров.
На всех компьютерах, с которых ведется работа с сервером (машины вебмастера, администратора, контент-менеджера, менеджера по продажам и т.д.) должны быть установлены антивирусы с поддержкой регулярных обновлений. Также необходимо своевременно обновлять операционную систему и прикладные программы.
4. Контролируйте данные, вводимые пользователями.
Фильтруйте HTML-разметку во вводимых пользователями данных, которые могут встраиваться в код страниц сайта.
Получая данные от пользователя, проверяйте на сервере, допустим ли их размер, входят ли переданные значения в допустимые списки и интервалы.
Никогда не вставляйте полученные от пользователей данные напрямую в вызовы eval()
, SQL-запросы или в преобразование типов. Всегда проверяйте и очищайте полученную информацию от потенциально опасных элементов.
Не оставляйте в рабочей версии кода параметры, введенные для отладки, эксперименты с новой или отключенной функциональностью.
Используйте WAF (Web Application Firewall).
5. Контролируйте права доступа пользователей, в частности, предусмотрите защиту от межсайтовой подделки запросов (CSRF).
Ограничьте доступ к панелям администрирования CMS и БД (например, phpMyAdmin), а также:
к резервным копиям кода;
к конфигурационным файлам;
к метаданным систем контроля версий (например, к каталогам .svn
или .git
).
6. По возможности скрывайте версии серверного ПО (CMS, веб-сервера, интерпретатора сценариев, СУБД).
7. Настраивайте файрволы и сетевую инфраструктуру так, чтобы были разрешены только соединения, необходимые для работы.
8. Старайтесь избежать кликджекинга.