- Настройка Joomla
- Установка расширений Joomla
- Резервное копирование перед установкой расширений Joomla
- Проверьте уязвимость расширений Joomla
- Загружайте расширения Joomla с проверенных сайтов
- Остерегайтесь пользователей! Проверяйте качество кода расширений Joomla
- Проверяйте, проверяйте, проверяйте...
- Удаляйте нежелательные файлы Joomla
- Избегайте зашифрованного кода в расширениях Joomla
- Дополнительные советы и рекомендации по усилению безопасности Joomla
Настройка Joomla.
Устанавливайте официальные версии Joomla.
Чтобы не сломать свой сайт, перед обновлением до новой версии Joomla поищите на форумах сообщения о несовместимых расширениях.
Обновляйтесь до последней стабильной версии Joomla как можно скорее.
Загружайте Joomla только с официальных сайтов, таких как downloads.joomla.org, и проверяйте хэш MD5.
Используйте инструменты диагностики веб-страниц, т.е. Firefox Developer Tools, Microsoft Edge (Chromium) Developer Tools, Chrome Developer Tools и т.д., чтобы убедиться, что все файлы были установлены правильно.
Измените имя администратора Joomla по умолчанию.
Измените имя пользователя admin
по умолчанию. Этот простой шаг эффективно повышает безопасность этой критически важной учетной записи на 50%, изменяя одну из двух переменных, которые должны знать злоумышленники для получения доступа. Другой переменной является пароль. Меняйте его как можно раньше и чаще. (FAQ)
Защитите каталоги и файлы Joomla.
Убедитесь, что все настраиваемые пути к записываемым или загружаемым каталогам (хранилища документов, галереи изображений, кэши) находятся вне public_html
. Проверьте сторонние расширения, такие как DOCMan и Gallery2, на наличие редактируемых путей к записываемым директориям.
Joomla 1.5 Joomla 2.5 Joomla 3.x Joomla 4.x
В глобальной конфигурации админки измените путь к файлам логов. Некоторые расширения используют встроенный класс JLog
. По умолчанию он будет записывать журналы по адресу http://yousite/logs
в Joomla 3.5 и ниже или http://yousite/administrator/logs
в новых установках Joomla 3.6+. Измените это место так, чтобы случайный браузер не смог его найти (и не выбирайте /tmp/
), или заблокируйте его с помощью http-аутентификации. Поскольку мы имеем дело с программным обеспечением с открытым исходным кодом, злоумышленники могут читать код сторонних расширений и, возможно, смогут угадать имена файлов журнала.
Joomla 1.5
Joomla 2.5
Joomla 3.x
Joomla 4.x
В глобальной конфигурации админки измените путь к папке temp
.
Если пути к log
и temp
изменены и установлена директива конфигурации PHP open_basedir
, убедитесь, что новые пути попадают в область действия open_basedir
.
В настоящее время не существует простого способа перемещения каталогов Joomla /image
и /media
. Это связано с тем, что тысячи сторонних расширений ожидают найти эти важные каталоги в текущем расположении. Лучше всего убедиться, что open_basedir
правильно установлен для всех учетных записей пользователей на вашем сервере. Если вы не уверены в этом, обратитесь к своему хостеру.
Настройте разрешения на файлы и каталоги Joomla.
Эта опция больше не используется в Joomla.
На старых версиях Joomla: Как только ваш сайт настроен и работает стабильно, защитите от записи критические каталоги и файлы, изменив разрешения на каталоги до 755
, а на файлы до 644
. Есть функция в разделе Сайт --> Глобальная конфигурация --> Сервер
(Site --> Global Configuration --> Server
) для установки всех разрешений на папки и файлы одновременно. После этого протестируйте сторонние расширения и внимательно изучите код любого расширения, у которого возникли проблемы с такими настройками.
Примечание: В зависимости от разрешений вашего сервера, вам может потребоваться временный сброс к более открытым разрешениям при установке большего количества расширений с помощью программы установки Joomla. Эта опция больше не применяется в Joomla, но включена на случай её нового появления.
Удалите ненужные файлы Joomla.
Удалите все шаблоны сайта и админки, которые не нужны вашему сайту. Никогда не помещайте логику обработки данных в файлы шаблонов.
Joomla 1.5
Отключите сервер XML-RPC, если он вам не нужен.
Наведите порядок после установки. В процессе установки вам потребуется удалить каталог установки и все его содержимое. Сделайте это; не переименовывайте его. Если вы загружаете файлы на свой сайт в виде сжатых архивов (например, xxxx.zip
), не забудьте удалить сжатый файл. Проверьте каталог /temp/
, так как после неудачной попытки установки там могут остаться временные файлы.
В целом, не оставляйте ненужные файлы (сжатые или иные) на публичном сервере. Каждый неиспользуемый (и, возможно, давно забытый) файл - это потенциальная брешь в системе безопасности.
Выключите эмуляцию регистра глобальных файлов Joomla.
Joomla 1.0
Выключите эмуляцию Register Globals в Joomla. Хотя эта настройка несколько безопаснее, чем PHP register_globals, вам лучше избегать таких настроек вообще (как и любых приложений, которые их требуют). В версиях Joomla до 1.0.13 эта настройка находится в файле globals.php
. Начиная с версии 1.0.13, ее можно отключить в админке Joomla, в разделе Global Settings (Общие настройки).
Joomla 1.5 Joomla 2.5 Joomla 3.x
Joomla 1.5 и выше, не использует регистр globals, и фактически имеет способы, чтобы не использовать эту настройку, даже если она включена на уровне PHP. Обратите внимание, что хотя это делает саму Joomla более безопасной, любой сервер с включенными register globals потенциально уязвим. Любой общий сервер с включенным register globals, скорее всего, является потенциальной угрозой. Любой хостинг-провайдер, который настаивает на том, что register globals должен быть включен, невежественен, некомпетентен или еще хуже. Это было достаточно прямолинейно?
Для получения дополнительной информации о register_globals
, пожалуйста, обратитесь к разделу Контрольный список безопасности: PHP: register_globals.
Установка расширений Joomla.
Резервное копирование перед установкой расширений Joomla.
Перед установкой расширений всегда создавайте резервные копии файлов и базы данных сайта. Это следует очень важному принципу:
Вы всегда должны иметь возможность вернуть сайт в прежнее рабочее состояние.
Поэтому разумно настроить простой и быстрый скрипт резервного копирования для автоматизации этой задачи. Если вы не создадите простой процесс заранее, у вас возникнет сильное искушение сделать быстрое обновление без предварительного резервного копирования. Это вполне понятный порыв, однако, является одной из главных причин преждевременного выпадения волос, резкой смены профессии и даже смерти.
Проверьте уязвимость расширений Joomla.
Большинство уязвимостей безопасности вызвано сторонними расширениями. Перед установкой расширений проверьте Официальный список уязвимых сторонних не официальных расширений Joomla. Существует целый сайт, посвященный уязвимым сторонним расширениям на vel.joomla.org, рекомендуем вам следить за ним!
Загружайте расширения Joomla с проверенных сайтов.
Полностью квалифицированное и официальное определение "надежного сайта" - это сайт, которому вы доверяете.
Остерегайтесь пользователей! Проверяйте качество кода расширений Joomla.
Сторонние расширения бывают разного качества и возраста. Хотя стандарты кодирования Joomla существуют, сторонние разработчики не обязаны им следовать. Расширения, перечисленные на официальном сайте Joomla, не проверяются на соответствие стандартам, однако если будет получено сообщение о подтвержденных уязвимостях, они будут удалены из списка до их устранения.
Проверяйте, проверяйте, проверяйте...
Перед установкой на боевой сайт протестируйте все расширения на сайте разработчиков. Затем протестируйте на тестовом сайте. Не забудьте проверить логи на наличие ошибок и предупреждений во время выполнения.
Удаляйте нежелательные файлы Joomla.
Удалите все неиспользуемые расширения и дважды проверьте, действительно ли связанные папки и файлы были удалены скриптами удаления. Обратите внимание, что при деинсталляции многие сторонние расширения оставляют на вашем сайте свои файлы и таблицы базы данных с данными. Это либо особенность, либо ошибка, в зависимости от вашей точки зрения. Любые файлы, оставленные на вашем сервере, остаются доступными из Интернета по прямым URL-адресам, таким как http://yousite.com/modules/bad_module
.
Избегайте зашифрованного кода в расширениях Joomla.
Joomla является (и, несмотря на дезинформационные кампании, всегда была) проектом GNU GPL. Это означает, что все расширения для Joomla также должны быть свободными (в смысле свободы) и открытыми (в смысле читаемого кода). Зашифрованный код может быть безопасным, но вы не можете определить это сами, поэтому вы должны доверять разработчикам. Использование чужого зашифрованного кода возвращает вас в мир проприетарного программного обеспечения, где вы должны ждать исправлений безопасности от разработчика, надеясь, что злоумышленники не найдут ваш сайт до того, как будет выпущено исправление.
Часто вы не можете свободно изменять, улучшать или делиться зашифрованным кодом. Эти ограничения делают зашифрованный код менее ценным для сообщества в целом и снижают общую жизнеспособность проекта Joomla, который зависит от открытого обмена между всеми участниками.
Конечно, код, который не распространяется среди других, освобождается от требований распространения GNU GPL. Таким образом, вы можете шифровать код, связанный с Joomla, на своих собственных серверах, при условии, что вы не распространяете его среди других.
Дополнительные советы и рекомендации по усилению безопасности Joomla.
Работа в среде без хоста.
Если вы используете Joomla в среде без хоста, пожалуйста, убедитесь, что вы установили параметр live_site
в configruation.php
на ваш домен, чтобы защитить вас от возможной инъекции заголовка хоста (Host Header Injection). Все сайты, работающие на виртуальных хостах, не затронуты этой проблемой.
По возможности избегайте общих серверов.
Для обеспечения максимальной безопасности избегайте общего сервера, на котором вы не знаете или не можете доверять всем другим пользователям или качеству их кода.
Включите SSL на вашем сервере.
Серверы с правильно настроенным SSL в настоящее время являются единственным способом безопасной обработки конфиденциальных данных и надежной аутентификации пользователей. SSL работает путем шифрования всех HTTP-коммуникаций между веб-сервером и веб-клиентами. Таким образом, даже если передача данных будет перехвачена, ее невозможно будет прочитать. Для получения дополнительной информации прочитайте нашу специальную статью в этом Контрольном списке безопасности (если вы еще этого не сделали).
Joomla 1.0.x не позволяет назначать SSL-сервер отдельным подкаталогам. Один из способов решения этой проблемы ищите на форумах по запросу "Tommy Hack". Joomla 1.5 и выше поддерживает настройку опций SSL из коробки.
Используйте .htaccess
в Apache.
Для дополнительного уровня защиты паролем можно использовать .htaccess
для защиты паролем важных каталогов. Этого обычно достаточно для блокирования типичных скриптов, но имейте в виду, что защита паролем .htaccess
сама по себе не является очень безопасным методом. Для максимальной защиты она ДОЛЖНА сочетаться с SSL-сервером. SSL-сервер необходим для защиты сайта от более сложных атак, таких как перехват пакетов.
Перейдите на Joomla 3.x.
Joomla 3.0
Самое значительное обновление в истории Joomla включает в себя мощные улучшения безопасности и производительности.
Добавьте объявления о безопасности Joomla на ваш сайт.
Команда безопасности Joomla поддерживает RSS канал, который предоставляет последнюю информацию о безопасности Joomla. В следующем FAQ объясняется, как добавить этот канал на ваш сайт.
Перевод с английского официальной документации Joomla:
https://docs.joomla.org/Security_Checklist/Joomla!_Setup
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)