Как помешать злоумышленникам разместить вредоносный код на своем сайте

  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. Старайтесь избежать кликджекинга. Простейшие проверки, предназначенные для этого:

    • Вывод HTTP заголовка X-FRAME-OPTIONS SAMEORIGIN или X-FRAME-OPTIONS DENY.
    • Javascript-конструкции вида
      if (top.location != window.location) top.location = window.location
      или
      top.location = 'http://example.com'

Популярные шаблоны