Ограничение доступа при помощи .htaccess
Как запретить веб-посетителям читать
файлы в директории?
Запрет на все файлы:
deny from all
Где all обозначает "все".
Разрешить доступ только с определенного
ip:
order allow deny
deny from all
allow from ip_адрес
В данном случае, ip_адрес обозначает
конкретный адрес, например:
order allow deny
deny from all
allow from 192.126.12.199
Запретить доступ для определенного ip
order allow deny
deny from all
deny from ip_адрес
Использование ip_адрес аналогично для
примера выше.
Запрет доступа на группу файлов по маске:
<Files "\.(inc|sql|...другие расширения...)$">
order allow,deny
deny from all
</Files>
Определяет доступ к файлу по его
расширению. Например запрет на доступ к
файлам с расширениям "inc" для веб-посетителей:
<Files "\.(inc)$">
order allow,deny
deny from all
</Files>
В данном примере сам веб-сервер Апач
может обращаться к файлам с таким
расширениям, в отличие от посетителей
сайта.
Запрет доступа на конкретный файл:
Можно поставить запрет на конкретный
файл по его названию и расширению.
<Files config.inc.php>
order allow,deny
deny from all
</Files>
В данном примере стоит запрет на
обращения к файлу config.inc.php посетителями
сайта, сам же сервер может использовать
этот файл.
Пароль на директорию:
AuthName "Private zone"
AuthType Basic
AuthUserFile /pub/home/твой_логин/.htpasswd
require valid-user
Значение AuthName будет выводиться для
посетителя и может использоваться для
пояснения запроса авторизации. Значение
AuthUserFile указывает на место, где хранится
файл с паролями для доступа к данной
директории. Этот файл создается
специальной утилитой htpasswd.exe.
Например в директории, которую защищаем
паролем создаем такой .htaccess:
AuthName "For Registered Users Only"
AuthType Basic
AuthUserFile /pub/site.ru/.htpasswd
require valid-user
В этом примере, посетитель при запросе
директории, будет читать фразу "For
Registered Users Only", файл с паролями для
доступа должен лежать в директории
/pub/site.ru/ и называться .htapasswd . Директория
указывается от корня сервера, если вы
неправильно зададите директорию, то Апач
не сможет прочитать файл .htpasswd и никто не
получит доступа к данной директории.
Пароль только на 1 файл:
Аналогично паролированию директории
полностью, можно ставить пароль только на
1 файл. Пример установки пароля на файл
private.zip:
<Files private.zip>
AuthName "Users zone"
AuthType Basic
AuthUserFile /home/аккаунт/.htpasswd
</Files>
Пароль на группу файлов:
Аналогично, используя <Files "\.(inc|sql|...другие
расширения...)$">, можно ставить пароли
по маске файлов. Пример установки пароля
на доступ ко всем файла с расширением
"sql":
<Files "\.(sql)$">
AuthName "Users zone"
AuthType Basic
AuthUserFile /home/аккаунт/.htpasswd
</Files>
Разделение прав доступа
Задача: есть каталог GF1 и в нем два
вложенных каталога GF1_1, GF1_2, введено 2
уровня пользователей. 1 группа имеет
доступ только к GF1_1 и GF1_2, 2-я ко всем трем
каталогам. Необходимо проводить
аутентификацию только 1 раз - при доступе
к GF1_1, но при этом соблюдать права на
доступ к GF1_1 и GF1_2. Логин и пароль
запрашиваются только при входе на GF1 -
если у юзвера есть доступ на GF1_1 пароль
уже не запрашивается. Если на GF1_2 доступа
нет, вылетит табличка "введите пароль".
www.site.ru/GF1
www.site.ru/GF1/GF1_1
www.site.ru/GF1/GF1_2
GF1 - общий и вместе с тем закрытый. GF1_1 и GF1_2
только для отдельных личностей.
файл .htaccess для каталога GF1:
AuthName "Input password"
AuthType Basic
AuthUserFile "/pub/home/login/htdocs/closearea/.htpasswd"
<Files *.*>
require valid-user
</Files>
файл .htaccess для каталога GF1_1:
AuthName "Input password"
AuthType Basic
AuthUserFile "/pub/home/login/htdocs/closearea/.htpasswd"
<Files *.*>
require user login1 login2 login3
</Files *.*>
файл .htaccess для каталога GF1_2:
AuthName "Input password"
AuthType Basic
AuthUserFile "/pub/home/абв/htdocs/closearea/.htpasswd"
<Files *.*>
require user login1 login3 login4
</Files *.*>
<< предыдущая
||
следующая >>
|