Как закрыть служебные директории MODX Revolution в Apache

Базовая аутентификация в MODX

 

Одним из способов повышения мер безопасности сайтов, разработанных на CMS/CMF MODX Revolution, да и на других системах управления, является базовая аутентификация с помощью файла .htpasswd. В этом случае при попытке авторизоваться в административном интерфейсе сайта потребуется ввести дополнительную пару «логин/пароль».

 

 

Что нужно

Создаём файл .htpasswd, можно с помощью сервиса htmlweb.ru, например, указав свой логин и пароль. Не такие, как к административной части сайта, другие, иначе теряется замысел. Получаем примерно следующее содержимое: webadminchik:$adhtr1$pxb4TrgheWQ$7KDqx/ta4ciDgHM92y53zz/

Размещаем .htpasswd в директории сайта выше www/public_html. В директориях manager, core, connectors добавляем/изменяем следующие записи в файлах .htaccess. Если файла в директории нет, его нужно создать.

Файл /manager/.htaccess

 
RewriteEngine Off

AuthType Basic
AuthName "Restricted Access"
AuthUserFile /home/user/.htpasswd #заменить на свой путь
Require valid-user

<files .htpasswd="">
   deny from all  #запрет доступа из браузера к .htpasswd
</files>

ErrorDocument 401 "401 Authorisation Required"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

Файл /core/.htaccess


IndexIgnore */*
<files>
    Order Deny,Allow
    Deny from all
</files>

AuthType Basic
AuthName "Restricted Access"
AuthUserFile /home/user/.htpasswd #заменить на свой путь
Require valid-user

<files .htpasswd="">
   deny from all  #запрет доступа из браузера к .htpasswd
</files>

ErrorDocument 401 "401 Authorisation Required"

Файл /connectors/.htaccess


RewriteEngine Off

AuthType Basic
AuthName "Restricted Access"
AuthUserFile /home/user/.htpasswd #заменить на свой путь
Require valid-user

<files .htpasswd="">
   deny from all  #запрет доступа из браузера к .htpasswd
</files>

ErrorDocument 401 "401 Authorisation Required"

Как узнать абсолютный путь к директории

Нужно создать файл с расширением .php, названный, скажем, file_name.php и таким содержанием:


<?php
  echo 'Document root: '.$_SERVER['DOCUMENT_ROOT'].'<br>';
  echo 'Полный путь к скрипту и его имя: '.$_SERVER['SCRIPT_FILENAME'].'<br>';
  echo 'Имя скрипта: '.$_SERVER['SCRIPT_NAME'];
?>

Файл загружаете на сервер в корневую директорию и затем в адресной строке браузера набираете
http://*site*.ru/file_name.php

В результате вы увидите следующее:


Document root: /home/XXXXX/YYYYY/public_html
Полный путь к скрипту и его имя: /home/XXXX/YYYYY/public_html/file_name.php
Имя скрипта: /file_name.php

Нужная нам информация будет находиться в первой строке.

Нижеприведенный код:


ErrorDocument 401 "401 Authorisation Required"

необходим, для того, чтобы избежать ошибки 404 при входе в админку. При настройке авторизации через .htaccess меняется адрес страницы, поэтому 404 и появляется.

Теперь при попытке входа в админку необходимо будет сначала пройти базовую аутентификацию:

 

Базовая аутентификация в MODX


Ненавязчивая благодарность проекту