HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Уязвимости > Уязвимости CMS / форумов
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Как проверить права файлов на сервере с CMS — есть нюансы
  #1  
Старый Вчера, 14:40
Plankton
Новичок
Регистрация: 06.12.2012
Сообщений: 7
С нами: 7070006

Репутация: 0
По умолчанию Как проверить права файлов на сервере с CMS — есть нюансы

Введение
Права файлов на сервере — это не просто какая-то куча цифр и букв, а реально маленький замок, который защищает ваш сайт или форум от чужих рук. Особенно если речь про CMS типа WordPress, Joomla, phpBB или любую другую систему управления контентом. Правильно выставленные права файлов и папок помогают избежать кучи проблем: от невозможности зайти в админку до полного взлома сайта. Но и тут есть нюансы — слишком строгие права могут привести к тому, что части сайта просто перестанут работать, а слишком свободные — откроют двери для всех желающих.

Что такое права файлов на сервере
Давайте разберёмся с основами — в Linux права файлов определяются для трёх категорий пользователей: владельца файла (owner), группы (group) и всех остальных (others). Для каждой категории есть три режима: чтение (r), запись (w) и выполнение (x). Эти права обычно показываются в виде цифр:
- 4 — право читать
- 2 — право писать
- 1 — право выполнять
Права складываются, например, 7 = 4+2+1 (чтение + запись + исполнение). Если посмотреть на файл с правами 755, это значит: владелец может делать всё, группа и остальные — читать и выполнять, но не писать.

Понимание, кто владелец файла и к какой группе он принадлежит, не менее важно. Зачастую веб-сервер работает под пользователем типа www-data или apache, и нужно назначать группы и права так, чтобы именно этот пользователь мог читать и писать в нужных местах.

Почему это важно для CMS
CMS — это набор файлов и папок, которые постоянно взаимодействуют друг с другом и с сервером. Например, когда пользователь загружает картинку, CMS должна иметь право записать этот файл в папку загрузок. Когда скрипт читает настройки, он должен иметь доступ к конфигу. Если права выставлены неверно, сайт либо не сможет работать, либо станет уязвим для взлома.

Особое внимание нужно уделить нескольким областям:
- Файлам конфигурации, особенно тем, где хранятся пароли базы данных (config.php и подобным).
- Папкам, куда загружают файлы — фото, документы и так далее.
- Папкам с кешем, где CMS создает временные файлы для более быстрой работы.
- Файлам логов и резервным копиям, которые содержат важную информацию.
- Скриптам и библиотекам — они должны быть доступны для исполнения, но не для записи кем попало.

Практические рекомендации по проверке и настройке прав
Для начала нужно узнать, какие права стоят сейчас. Самый простой способ — подключиться к серверу по SSH и выполнить команду “ls -l” в директории сайта. Там можно увидеть что-то вроде:
-rw-r----- 1 www-data www-data config.php
Это говорит о том, что владелец (www-data) может читать и писать, группа (www-data) может читать, остальные не имеют доступа.
Если файл настроек сайта открыт для всех (например, 644) — скорее всего это не страшно, но права записи должны быть только у владельца. Если же файл конфигурации доступен для записи группе или остальным — это плохо.

Примеры выставления прав:

1. Файл с конфигурацией (например, config.php)
Права 600 (rw-------) — файл читается и редактируется только владельцем веб-сервера. Если сайт работает под другим пользователем, нужно подобрать права, чтобы никто посторонний не мог прочесть или изменить файл.
Переусердствовать с ограничениями тоже не стоит: если права слишком узкие и скриптам нельзя прочитать конфиг — сайт упадёт.

2. Папки с кэшем и загрузками
Тут нужна возможность записи для веб-сервера. Обычно используют 750 или 770, если группа совпадает с пользователем веб-сервера. Например, папка uploads/ может иметь права drwxrwx--- с владельцем www-data и группой www-data. Это позволяет скриптам писать в папку, а остальным — нет.

3. Исполняемые файлы (скрипты, библиотеки)
Как правило, права 644 (rw-r--r--) подходят: владелец может писать, все остальные — только читать. Исполняемые скрипты иногда имеют права 755, если их нужно запускать как программу. Права 777 на такие файлы — страшный сон.

4. Логи и бэкапы
Желательно, чтобы доступ был ограничен владельцем и группой, т.к. там может храниться много внутренней информации. Права 640 или 600 обычно подходят.

Типичные ошибки и их последствия
Очень часто встречают ситуацию, когда кто-то ставит права 777 на папки и файлы просто чтобы “все работало”. Это ужасно опасно, потому что даёт полный доступ всем пользователям сервера, включая потенциальных злоумышленников. Через такие дырки хакеры могут заливать свой код, изменять скрипты и запускать вредоносные процессы.

Другой распространённый косяк — оставлять конфигурационные файлы доступными для чтения/записи всем (644 и выше). Это может привести к утечке паролей от базы или других конфиденциальных данных.

Также часто не учитывают, под каким конкретно пользователем работает веб-сервер. Допустим, сайт на shared-хостинге работает под user123, а права выставлены, ориентируясь на www-data — тогда часть функций может просто не работать.

Наконец, не проверяют права для всех подпапок и файлов. В итоге у вас может быть правильно настроен корень директории, а где-то в глубине папка с хромающими правами и дыра в безопасности.

Полезные инструменты для проверки прав файлов
- ls -l и stat — основа, чтобы посмотреть текущие права и владельца.
- find — помогает находить файлы с "опасными" правами, например:
find /var/www -perm 777 -type d
find /var/www -perm -o+w -type f
- Midnight Commander (mc) — удобный файловый менеджер в консоли с визуальным отображением прав и быстрым их изменением.
- Скрипты и плагины для CMS — некоторые CMS имеют встроенные инструменты для проверки безопасности, включая правильность прав.
- Панель управления хостингом — cPanel, Plesk и другие поддерживают просмотр и редактирование прав через веб-интерфейс, что удобно для тех, кто не любит командную строку.

Чек-лист перед публикацией сайта или при аудитe
- Проверить права на все конфигурационные файлы — не выше 640, лучше 600.
- Папки с загрузками, кэшем и временными файлами должны быть доступны для записи только владельцу или группе веб-сервера (750/770).
- Скрипты — права 644 или 755, но не 777.
- Логи и резервные копии закрыты от общего доступа (640 или 600).
- Проверить владельца и группу файлов — чтобы это был пользователь веб-сервера.
- Использовать find для поиска файлов/папок с правами 777 и исправлять их.
- Обязательно протестировать сайт после изменений прав, чтобы ничего не сломалось.

FAQ

1. Что будет, если выставить права 777 на папку uploads?
Это даст право любого пользователя сервера читать, записывать и запускать файлы в этой папке — открытая дверь для злоумышленников и вредоносного кода.

2. Можно ли сделать все файлы 644, а папки 755, чтобы было универсально?
В большинстве случаев это сработает, но если сайт должен писать в некоторые папки, например для кеша или загрузок, нужно выставить там права на запись пользователю веб-сервера (750 или 770).

3. Как узнать, под каким пользователем работает мой веб-сервер?
В SSH достаточно выполнить команду ps aux | grep apache или ps aux | grep nginx. Обычно это www-data, apache, nginx или user вашего хостинга.

4. Почему после смены прав сайт перестал работать?
Наверняка вы ограничили права слишком сильно, и скриптам теперь даже нельзя читать конфиги или записывать временные файлы. Нужно найти оптимальный баланс.

5. Как быстро проверить на хостинге без SSH, что с правами?
Многие панели управления позволяют просматривать и менять права через веб-интерфейс. Также можно найти плагины для CMS, которые отображают проблемы с безопасностью.

В итоге, настройка прав — это не просто галочка в чек-листе, а тонкая настройка, которая требует понимания того, как работает веб-сервер и CMS. Не бойтесь копаться, экспериментируйте в тестовом окружении и обязательно делайте резервные копии перед серьёзными правками. Только так ваш сайт будет и работать правильно, и оставаться в безопасности.
 
Ответить с цитированием
 



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.