Права на файлы и папки OpenCart: как настроить безопасно
Краткое описание задачи
Неправильные права на файлы — одна из самых частых причин взлома OpenCart. PHP-файлы с правами 777 позволяют злоумышленнику изменить любой файл на сайте. Разберём, как настроить права безопасно.
Из практики: знание структуры шаблона сокращает доработки с дней до часов.
Какие права должны быть
- PHP-файлы (.php) — 644 (владелец читает/пишет, группа/другие только читают).
- Папки — 755 (владелец читает/пишет/выполняет, группа/другие читают/выполняют).
- config.php — 400 или 440 (только чтение, без записи).
- Папка storage/ — 755, но файлы внутри — 644.
- Изображения и файлы загрузок — 644.
Почему 777 — это опасно
Права 777 дают полный доступ любому процессу на сервере. Если злоумышленник получит возможность выполнить код (через уязвимость в модуле), он сможет перезаписать любой файл с правами 777 — включая index.php, чтобы вставить свой код.
Команды для настройки
find /path/to/site -type f -name "*.php" -exec chmod 644 {} ;
find /path/to/site -type d -exec chmod 755 {} ;
chmod 440 /path/to/site/config.php
chmod 440 /path/to/site/admin/config.php
chmod 755 /path/to/site/system/storage/
Рекомендации из практики
Как лучше: После установки OpenCart сразу выставите права 644 на все PHP-файлы и 755 на папки. Это базовая защита, которая блокирует бо́льшую часть автоматизированных атак. Затем отдельно защитите config.php правами 400 — после настройки сайта его не нужно редактировать, а чтение через браузер PHP не отдаёт.
Как не делать: Не выставляйте 777 на папки в hopes что модуль установится. Если модуль требует 777 — это плохой модуль. Ищите другой или просите разработчика исправить. Права 777 на сервере снимают любую защиту: любой скрипт на хостинге может изменить ваши файлы.
Кейс из практики: Клиент установил модуль обмена с 1С — в инструкции было написано «выставить 777 на папку system/storage/». Через месяц сайт взломали: через дыру в соседнем скрипте на хостинге залили шелл-скрипт, который вытянул базу с заказами. После восстановления сделали правильные права: 755 на storage, 644 на всё остальное, 400 на config.php — больше инцидентов не было.
Нужно проверить безопасность OpenCart — закажите технический аудит: проверим права, конфиги и уязвимости.
FAQ
После смены прав перестал работать модуль — что делать?
Возможно, модулю нужна запись в свою папку (например, для кэша). Дайте папке модуля права 755, а не 644.
Как проверить права на файлы без доступа к SSH?
Через FTP-клиент (FileZilla, Total Commander): в свойствах файла или папки смотрите цифровое значение прав (644, 755 и т.д.). Если хостинг даёт файловый менеджер в панели (cPanel, ISPmanager) — там тоже отображаются права. По практике, права можно проверить и через PHP: создайте файл phpinfo.php и найдите раздел «open_basedir».
Итог
Права на файлы — база безопасности. PHP — 644, папки — 755, config — 440. Никогда не используйте 777.
Комментарии (0)
Пока нет комментариев. Будьте первым!
Оставить комментарий