Аудит безопасности системы
Актуально для версии 2.9.5
В закладке "Безопасность" модуля "Конфигурация" есть инструмент проверки безопасности системы. Данный раздел проверяет насколько защищенная система и позволяет отслеживать доступ обычных пользователей к наиболее важным средствам работы с системой и сайтом в целом.
Так как в официальной документации находиться только описание каждого пункта но не оговаривается какие именно проверяются данные и где берется информация для теста мы рассмотрим их поподробнее, что бы можно было настроить все пункты на успешное прохождение теста.
1. Протокол UFS закрыт - данный пункт проверяет на наличие в файле config.ini разрешения использовать через адресную строку протокол UFS. Данное разрешение прописывается строкой ufs.http.allow = в секции [streams]. Для удачного прохождения теста необходимо что бы ее значение было равно "0".
2. Протокол UObject закрыт - данный пункт проверяет на наличие в файле config.ini разрешения использовать через адресную строку протокол UObject. Данное разрешение прописывается строкой "uobject.http.allow = " в секции [streams]. Для удачного прохождения теста необходимо что бы ее значение было равно "0".
3. Подключение к БД не под root-ом - здесь проверяется какой логин используется для подключение к базе данных MySQL, стандартно у каждой базы данных есть главный пользователь который может полностью ей управлять, его логин root, но так как для работы сайта достаточно одной базы данных то создается отдельный пользователь со своими логином и паролем который может управлять только одной базой данных на сервере. Проверка делается по файлу config.ini, где в секции [connections] указываются данные для подключения к базе данных. Для успешного прохождения теста необходимо, что бы значение поля "login=" было отличным от значения root.
4. Пароль для БД не пустой - как можно понять из названия тут проверяется та же секция [connections] файла config.ini, где поле "password=" обязательно должно иметь какое либо значение кроме "", то есть что бы был указан обязательно пароль для подключения к базе данных MySQL.
5. Доступ к файлу конфигурации закрыт - в данном пункте проверяется доступность файла config.ini через адресную строку браузера. То есть если файл config.ini можно открыть введя в адресной строке браузера http://domain.ru/config.ini, значит тест будет провален. Для успешного прохождения данного теста в файле ".htaccess" предусмотренно правило "RewriteRule ^config\.ini$ / [L,R]", если этого правила нет или оно "закомментировано" (то есть перед строкой стоит символ "#"), то необходимо либо добавить эту строку перед строкой "RewriteRule ^install\.ini$ / [L,R]", либо раскомментировать (то есть удалить символ "#" перед строкой).
6. Доступ к системным папкам закрыт - в данном тесте система проверяет запрос к папке /classes через адресную строку браузера. Что бы тест прошел удачно необходимо в ответ присылать системе либо 403 ошибку сервера, либо ничего не должно приходить вообще. Стандартно это делается добавлением файла ".htaccess" в папку /classes. В самом файле находиться одна строка Deny from all которая закрывает всем доступ к этой папке через браузер.
7. Выполнение php скриптов в /files/ - данный тест проверяет выполняются ли ".php" скрипты из папки /files/. Стандартно исполнение скриптов в папке /files/ закрывается. Для того что бы тест проходил удачно необходимо наличие в папке /files/ файла .htaccess где должна быть прописана строка php_flag engine off которая запрещает работу php-скриптов в папке и вложенных папках рекурсивно.
8. Доступ к файлу php_for_del_connector.php - данным тестом проверяется доступность системного файла php_for_del_connector.php в папке /styles/common/other/elfinder/php/. Тест проходит удачно при наличии в данной папке файла .htaccess в котором присутствует строка Deny from all.