2012-05-01 2 views
5

Мы пытаемся защитить несколько различных ресурсов в нашей установке ModX. Текущий код .htaccess выглядит следующим образом (не включая все вещи MODx)Как защитить пароль на веб-сайте ModX с помощью htaccess и htpasswd?

AuthName "Dialog prompt" 
AuthType Basic 
AuthUserFile /var/www/vhosts/mywebsite.co.uk/.htpasswd 

<FilesMatch ^index.php\?q=71$> 
    require valid-user 
</FilesMatch> 

Целью упражнения является защита следующих ресурсов:

Я пробовал различные комбинации LocationsMatch, Locations, Files и Filesmatch и не могу заставить его работать.

Спасибо заранее

+1

Я бы сказал: начните читать руководство по этим директивам, которое, по крайней мере, даст вам представление о том, почему то, что вы пробовали до сих пор *, не работает *: http: //httpd.apache.org/docs/current/mod/core.html # filesmatch – hakre

+0

Прочитайте каждое слово и попробуйте каждый вариант, который я могу исследовать. Для этого нужно, чтобы кто-то, вероятно, имел некоторый опыт в достижении этой проблемы, которая должна быть довольно распространенной. – user1346416

+1

Почему вы используете .htaccess, а не modx в управлении ресурсами/безопасностью? –

ответ

0

Это то, что общее решение было:

Если кто-то должен знать, что я создал фрагмент называется passwordprotect и положить в верхней части страницы: [ [passwordprotect]]. Затем я положил в следующем коде (адаптация выше ответа):

<?php 

if(isset($_SERVER['PHP_AUTH_USER']) && ($_SERVER['PHP_AUTH_USER']=='user') &&  ($_SERVER['PHP_AUTH_PW']=='password')) 
{ 
    echo 'You are successfully logged in.'; 
} else { 
    header('WWW-Authenticate: Basic realm="Protected area"'); 
    header('HTTP/1.0 401 Unauthorized'); 
    echo 'Text to send if user hits Cancel button'; 
    exit; 
} 

EDIT: Если вы обнаружили, что это иногда делает работу, а иногда и не работает, это, вероятно, потому, что, используя [[passwordprotect] ], modx будет кэшировать фрагмент. Я добился большего успеха с: [[! Passwordprotect]] на Revolution. Я думаю, что код является [! Passwordprotect!] На Evolution. Восклицательные знаки просто означают не кэширование фрагмента. Надеюсь, что кто-то поможет!

+0

Если вы обнаружите, что это иногда срабатывает, а иногда и не работает, возможно, это связано с использованием [[passwordprotect]], а modx будет кэшировать фрагмент. – user1346416

+0

Кроме того, кеш-фрагмент может иметь ПРЕДЫДУЩИЙ пользователь, прошедший проверку подлинности, а не новый. Ниже приведена правильная реализация. –

0

Нет абсолютно никаких оснований для этого и исключает всю цель ACL Revolution MODX. Правильный ответ:

  1. Установить группу пользователей с минимальной ролью, которая может получить доступ к ресурсам.
  2. Создайте тестовые ресурсы в группе ресурсов.
  3. Добавить администратор сайта в группу ресурсов.
  4. Создайте тестового пользователя в группе ресурсов.
  5. Обновить кеш сайта.
  6. Выйдите из системы всех пользователей - включая вас самих.
  7. Проверка ACL - с администратором сайта как у менеджера, так и на лицевой стороне.
  8. Выйти или использовать совершенно другой браузер и протестировать его с помощью тестового пользователя.
  9. После того, как он работает, переместите защищенные документы в группу ресурсов.
  10. Добавить пользователей в группу, к которой у вас есть доступ.
  11. Удалить фрагмент.

Если вам нужна дополнительная помощь, получите копию моей книги или посетите мой сайт.

 Смежные вопросы

  • Нет связанных вопросов^_^