Представьте: вы открыли интернет-магазин, запустили рекламу, пошли первые заказы. А через неделю обнаруживаете, что на сайте появился вредоносный код, база данных утекла, а вместо каталога — чужая страница с азартными играми. Знакомо? Я не преувеличиваю — такие случаи происходят регулярно. И одна из главных причин — неправильные права доступа к файлам и папкам.

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 передаёт пароли в открытом

Добавить комментарий

Разработка сайтов на Wordpress