Представьте: вы открыли интернет-магазин, запустили рекламу, пошли первые заказы. А через неделю обнаруживаете, что на сайте появился вредоносный код, база данных утекла, а вместо каталога — чужая страница с азартными играми. Знакомо? Я не преувеличиваю — такие случаи происходят регулярно. И одна из главных причин — неправильные права доступа к файлам и папкам.
WooCommerce — это не просто плагин для корзины. Это полноценная платёжная система, которая хранит данные клиентов, обрабатывает заказы и работает с конфиденциальной информацией. И если файловые права настроены «как у всех», вы фактически оставляете дверь открытой для злоумышленников.
В этой статье разберём, как правильно настроить права доступа к файлам WooCommerce, какие директории требуют особого внимания и как не допустить типичных ошибок, которые стоят бизнесу денег и репутации.
Почему права доступа к файлам WooCommerce — вопрос безопасности бизнеса
Каждый файл на вашем сервере имеет три набора прав: для владельца, группы и всех остальных. Каждый набор определяет, можно ли читать, записывать или исполнять файл. Если выставить права неверно, то:
- Злоумышленник сможет записать вредоносный код в файлы темы или плагина
- Кто угодно получит доступ к wp-config.php с данными от базы данных
- Хакер загрузит шелл-скрипт через папку загрузок и получит контроль над сервером
- Конфигурационные файлы с ключами API платёжных систем станут доступны третьим лицам
По данным Sucuri, более 56% взломанных сайтов на WordPress имели неправильно настроенные файловые права. Это не абстрактная угроза — это статистика реальных инцидентов.
Как устроена система прав доступа в Linux
WooCommerce работает на WordPress, а WordPress работает на Linux-хостинге. Поэтому нам нужно разобраться в системе прав именно этой ОС.
Три типа прав
Каждый файл или директория имеет три категории доступа:
- r (read) — чтение. Для файла означает возможность просмотреть содержимое. Для папки — посмотреть список файлов внутри.
- w (write) — запись. Для файла — возможность изменить его содержимое. Для папки — создать, удалить или переименовать файлы внутри.
- x (execute) — выполнение. Для файла — возможность запустить его как программу. Для папки — возможность «войти» в неё.
Три категории пользователей
- Owner (владелец) — тот, кто создал файл, обычно пользователь веб-сервера (www-data, apache, nginx)
- Group (группа) — группа пользователей, к которой принадлежит владелец
- Others (остальные) — все прочие, включая посетителей сайта
Что означают цифры chmod
Команда chmod задаёт права числами. Каждая цифра — сумма прав: r=4, w=2, x=1. Например:
| Код | Буквенное обозначение | Что означает |
|---|---|---|
| 755 | rwxr-xr-x | Владелец может всё, остальные — читать и выполнять |
| 644 | rw-r—r— | Владелец читает и пишет, остальные только читают |
| 777 | rwxrwxrwx | Все могут всё (опасно!) |
| 600 | rw——- | Только владелец читает и пишет |
| 400 | r——— | Только владелец может читать |
Правило простое: давайте минимум прав, необходимых для работы. Ничего лишнего.
Стандартные права доступа для WooCommerce: что ставить и куда
Теперь переходим к практике. Вот рекомендуемые права для файлов и папок вашего магазина на WooCommerce.
Папки (директории)
| Путь | Рекомендуемые права | Пояснение |
|---|---|---|
| / (корень WordPress) | 755 | Стандарт для корневой директории |
| /wp-content/ | 755 | Основная директория контента |
| /wp-content/plugins/ | 755 | Папка плагинов, включая WooCommerce |
| /wp-content/themes/ | 755 | Папка с темами оформления |
| /wp-content/uploads/ | 755 | Загрузки медиафайлов |
| /wp-content/woocommerce/ | 755 | Кастомные шаблоны WooCommerce |
| /wp-admin/ | 755 | Административная панель |
| /wp-includes/ | 755 | Ядро WordPress |
Файлы
| Путь | Рекомендуемые права | Пояснение |
|---|---|---|
| Все .php файлы | 644 | Стандарт для файлов WordPress |
| .htaccess | 644 | Конфигурация Apache |
| wp-config.php | 600 или 400 | Критически важный файл! Доступ только владельцу |
| .user.ini | 644 | Конфигурация PHP |
| robots.txt | 644 | Инструкции для поисковиков |
Обратите внимание на wp-config.php. Этот файл содержит имя пользователя и пароль от базы данных, соли безопасности и префиксы таблиц. Если он доступен для чтения «остальным» — всё, ваш магазин скомпрометирован.
Особые директории WooCommerce, которые нельзя игнорировать
WooCommerce создаёт собственные папки и файлы поверх стандартного WordPress. Вот на что обратить пристальное внимание:
Папка загрузок WooCommerce
WooCommerce позволяет покупателям загружать файлы (например, если вы продаёте цифровые товары). Путь — wp-content/uploads/woocommerce_uploads/. Рекомендуемые права — 755 для папки. Но ещё важнее закрыть прямой доступ к этой директории через .htaccess:
Создайте файл .htaccess внутри папки загрузок с содержимым:
[apache]order deny,allow
deny from all[/apache]
Это запретит прямое скачивание файлов по URL. WooCommerce будет отдавать файлы через PHP-скрипт, проверяя, оплатил ли клиент заказ.
Логи и кеши WooCommerce
WooCommerce пишет логи в wp-content/uploads/wc-logs/ и кеш в wp-content/cache/. Эти директории могут содержать敏感ные данные — информацию о транзакциях, ошибках платёжных шлюзов. Права — 755 для папок, 644 для файлов. И обязательно добавьте запрет на доступ из браузера аналогично загрузкам.
Файл wp-config.php и данные платёжных систем
Если вы храните ключи API платёжных шлюзов (Stripe, Робокassa, ЮKassa) прямо в wp-config.php или в базе данных через настройки WooCommerce — защитите этот файл в первую очередь. Права 600 — максимум безопасности.
Как проверить и исправить права доступа
Допустим, вы подозреваете, что права настроены неправильно. Вот несколько способов проверки.
Через SSH-доступ
Если у вас есть доступ к серверу через SSH, выполните команду:
find /path/to/wordpress -type d -exec stat -c "%a %n" {} \; | head -20
Эта команда покажет права всех директорий. Для файлов:
find /path/to/wordpress -type f -name "*.php" -exec stat -c "%a %n" {} \; | head -20
Чтобы массово исправить права:
# Установить 755 для всех папок
find /path/to/wordpress -type d -exec chmod 755 {} \;
Установить 644 для всех файлов
find /path/to/wordpress -type f -exec chmod 644 {} \;
Усилить защиту wp-config.php
chmod 600 /path/to/wordpress/wp-config.php
Через FTP-клиент
Если SSH недоступен, используйте FileZilla или любой другой FTP-клиент. Нажмите правой кнопкой на файл или папку, выберите «Права доступа» и введите нужное числовое значение. Для рекурсивного применения (на все вложенные файлы и папки) в FileZilla есть галочка «Применить рекурсивно».
Через панель управления хостингом
Большинство хостеров предоставляют файловый менеджер в cPanel, ISPmanager или собственной панели. Обычно там тоже можно менять chmod через контекстное меню. Это самый простой, но и наименее гибкий способ.
Типичные ошибки с правами доступа в WooCommerce
За годы работы с интернет-магазинами я видел одни и те же ошибки снова и снова. Вот топ проблем:
Права 777 на папку uploads
«Магазин не загружает картинки, поставил 777 — заработало!». Да, заработало. И злоумышленники тоже теперь могут загружать что угодно в эту папку. Шеллы, скрипты для рассылки спама, майнеры. Никогда не ставьте 777. Если 755 не работает — проблема в владельце файла, а не в правах. Используйте chown.
Одинаковые права для всех файлов
Ставить 644 на всё подряд — лучше, чем 777, но всё равно не идеально. wp-config.php, файлы ключей, конфиденциальные данные — они должны быть строже.
Игнорирование прав на файлы .htaccess
Через .htaccess можно перенаправить весь трафик сайта, внедрить вредоносные редиректы, открыть доступ к закрытым директориям. Если этот файл имеет права на запись для группы или «остальных» — это дыра в безопасности.
Отсутствие защиты директории wp-admin
Директория админ-панели WooCommerce и WordPress доступна всем по умолчанию. Добавьте базовую HTTP-авторизацию через .htaccess — это отсечёт 90% автоматических атак на подбор пароля.
Дополнительные меры защиты файлов WooCommerce
Права доступа — это фундамент, но не вся защита. Для интернет-магазина рекомендую также:
- Отключите редактирование файлов из админки WordPress. Добавьте в wp-config.php строку:
— это не даст хакеру отредактировать тему через визуальный редактор, даже получив доступ к админке.define('DISALLOW_FILE_EDIT', true); - Ограничьте доступ по IP к директории wp-admin через .htaccess, если вы работаете из офиса с фиксированным IP.
- Настройте WAF (Web Application Firewall) — Sucuri, Wordfence или хотя бы встроенный файрволл вашего хостера.
- Регулярно обновляйте WooCommerce, WordPress и все плагины. Устаревшие версии — главная причина взломов.
- Используйте SFTP вместо FTP — обычный FTP передаёт пароли в открытом
Добавить комментарий