Правильная настройка прав доступа к файлам и папкам в WordPress — один из ключевых элементов безопасности сайта. Неправильные разрешения могут привести к взлому, несанкционированному изменению файлов и утечке данных. В этой статье подробно разберём, как провести аудит прав доступа, какие значения использовать и как автоматизировать проверку с помощью кода и плагинов.
Почему важно контролировать права доступа к файлам WordPress
В среде хостинга каждый файл и папка на сервере имеют набор разрешений, которые определяют, кто и что может с ними делать: читать, записывать или запускать. Если права выставлены слишком широко, злоумышленник может загрузить и выполнить вредоносный скрипт, изменить конфигурационные файлы или получить доступ к чувствительной информации.
Стандартные рекомендации WordPress гласят, что директории должны иметь права 755, а файлы — 644. Однако на практике бывают исключения, особенно для папок с загрузками и кешем.
Без регулярного аудита прав доступа велик риск, что после установки плагинов, тем или обновлений какие-то файлы получили неправильные разрешения. Это может привести к уязвимостям, которые легко эксплуатируются.
Как проверить права доступа к файлам и папкам WordPress
Проверка через SSH и командную строку
Если у вас есть доступ к серверу по SSH, можно быстро проверить права с помощью команды ls -l. Например, перейдите в корень сайта и выполните:
cd /path/to/wordpress
ls -lВы увидите список файлов и папок с их правами, владельцем и группой. Важно, чтобы файлы имели права rw-r--r-- (т.е. 644), а папки — rwxr-xr-x (т.е. 755). Если права отличаются, это повод для проверки.
Проверка с помощью PHP-скрипта
Для удобства можно использовать скрипт, который проверит права доступа и выведет список файлов с неправильными значениями. Например, следующий код сканирует каталог и выводит файлы с правами, отличающимися от рекомендуемых:
<?php
function wpscan_check_permissions($dir) {
$rii = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir));
$errors = [];
foreach ($rii as $file) {
if ($file->isDir()) {
$perms = substr(sprintf('%o', $file->getPerms()), -3);
if ($perms !== '755') {
$errors[] = "Директория: {$file} с правами {$perms}";
}
} else {
$perms = substr(sprintf('%o', $file->getPerms()), -3);
if ($perms !== '644') {
$errors[] = "Файл: {$file} с правами {$perms}";
}
}
}
if (empty($errors)) {
echo "Все права доступа настроены корректно.";
} else {
foreach ($errors as $error) {
echo $error . "<br>";
}
}
}
wpscan_check_permissions(__DIR__);Этот скрипт можно положить в корень сайта и запустить через браузер или командную строку. Он выведет все файлы и папки с правами, которые не соответствуют рекомендованным.
Оптимальные права доступа для файлов и папок WordPress
Для большинства сайтов с WordPress рекомендуются следующие права:
- Директории: 755 — владелец может читать, писать и выполнять, группа и остальные — читать и выполнять.
- Файлы: 644 — владелец может читать и писать, остальные — только читать.
Исключение составляют некоторые системные файлы и папки, например:
wp-config.php— иногда советуют ставить 600 или 640, чтобы ограничить доступ другим пользователям сервера.- Папки с временными файлами или кешем — могут требовать права записи (например, 775) в зависимости от настройки хостинга.
Важно, чтобы владелец файлов и папок совпадал с пользователем веб-сервера. Иначе даже правильные права могут не работать корректно.
Использование плагинов для аудита и исправления прав доступа
Если вы предпочитаете графические решения, можно использовать плагины для проверки безопасности, которые включают аудит прав доступа:
- Acunetix WP Security Scanner — сканирует сайт, включая права доступа и уязвимости.
- iThemes Security — комплексный плагин безопасности с функциями проверки прав файлов.
- Clearfy Pro — расширенный инструмент оптимизации и безопасности, который позволяет настроить права доступа и убрать потенциальные уязвимости.
Плагины обычно показывают предупреждения, если права доступа выставлены неправильно, и помогают исправить их одной кнопкой.
Как автоматически исправить права доступа с помощью PHP
Для удобства можно написать функцию, которая автоматически исправляет права доступа в каталоге WordPress. Например:
function wpscan_fix_permissions($dir) {
$rii = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir));
foreach ($rii as $file) {
if ($file->isDir()) {
chmod($file, 0755);
} else {
chmod($file, 0644);
}
}
// Особый файл wp-config.php
if (file_exists($dir . '/wp-config.php')) {
chmod($dir . '/wp-config.php', 0640);
}
echo "Права доступа успешно исправлены.";
}
// Используйте с осторожностью, запуск через браузер может быть опасен
// wpscan_fix_permissions(__DIR__);Внимание: запускать такую функцию нужно только если вы уверены в своих действиях и имеете резервную копию сайта. Неправильное использование может привести к проблемам с доступом.
Заключение по аудиту прав доступа в WordPress
Регулярный аудит и корректная настройка прав доступа — базовая практика для безопасного и стабильного сайта на WordPress. Используйте SSH для проверки, дополнительно — простые PHP-скрипты для автоматизации, а для удобства и комплексного подхода — проверенные плагины безопасности.
Если хотите более удобные инструменты для управления безопасностью, рекомендую ознакомиться с Clearfy Pro на wpshop.ru — он поможет быстро исправить многие проблемы без сложных настроек.