Одним из способов повышения мер безопасности сайтов, разработанных на CMS/CMF MODX Revolution, да и на других системах управления, является базовая аутентификация с помощью файла .htpasswd. В этом случае при попытке авторизоваться в административном интерфейсе сайта потребуется ввести дополнительную пару «логин/пароль».
Создаём файл .htpasswd, можно с помощью сервиса htmlweb.ru, например, указав свой логин и пароль. Не такие, как к административной части сайта, другие, иначе теряется замысел. Получаем примерно следующее содержимое: webadminchik:$adhtr1$pxb4TrgheWQ$7KDqx/ta4ciDgHM92y53zz/
Размещаем .htpasswd в директории сайта выше www/public_html. В директориях manager, core, 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"
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"
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 и появляется.
Теперь при попытке входа в админку необходимо будет сначала пройти базовую аутентификацию: