27 марта, 2013, обновлено 13 апреля, 2016

htaccess

Ограничение доступа средствами htaccess

Доступ на просмотр/запуск без пароля

Описание директив

  • deny — отказать (запретить);
  • allow — позволять (разрешить);
  • order — порядок (порядок директив);
  • <Files some.file></Files> — применить группу директив к файлу/-ам;
  • <Files ~ "some.file"></Files> — знак ~ включает регулярные выражения.

Примеры

Запретить просмотр/запуск всего в папке и подпапках:

deny from all

Закрыть доступ определенному IP:

order allow deny
allow from all
deny from 000.000.000.000

Открыть досутп только определенному IP:

order deny allow
deny from all
allow from 000.000.000.000

Закрыть доступ только к файлу access.json:

<Files access.json>
deny from all
</Files>

Закрыть доступ к нескольким файлам:

<Files ~ "one.file|file.next">
deny from all
</Files>

Закрыть доступ к файлам по маске:

<Files ~ "\.(json|php)$">
deny from all
</Files>

Доступ на просмотр/запуск c паролем

Создаем .htaccess

В папке, к которой хотим ограничить доступ, создаем файл .htaccess:

AuthType Basic
AuthName 'Authorization...'
AuthUserFile /home/mysite.ru/public/.htpasswd
Require valid-user

Обратите внимание на путь AuthUserFile. Это путь к файлу с паролями от корня сервера (не от корня сайта). Если вы его не знаете (не помните) — выполните PHP скрипт phpinfo() и ищите там DOCUMENT_ROOT. Ну или echo $_SERVER['DOCUMENT_ROOT'];

Создаем .htpasswd

Пароль в этом файле зашифрован (по слухам) с помощью md5. Я сразу кинулся в PHP к функции md5();, и круто обломался. Видимо все там по-другому. Так что содержимое этого файла нужно сгенерировать другими средствами:

Способ раз

Файл с паролями (.htpasswd) будем хранить в корне сайта. Его содержимое формируется утилитой, входящей в поставку Apache — htpasswd. Она обычно находится в каталоге bin (/usr/local/bin/htpasswd), ага. Коннектимся по SSH, ls, cd, ls, cd,... И выполняем команду:

htpasswd -mbc .htpasswd login1 myfavoritepassword123

Чтобы добавить в уже существующий файл нового пользователя: htpasswd .htpasswd login2

Способ два

https://www.google.ru/search?q=htpasswd+generator.

Способ три

Скачать apache/установить или отдельно скачать утилиту htpasswd (тоже можно найти) и (если вы под виндой) выполнить через cmd следующую команду:

htpasswd.exe -mc .htpasswd user1

И для добавление в уже существующий: htpasswd.exe -m .htpasswd user2


Добавить комментарий

2010–2019 Блог Максима Златова, контакты

PHP execution time: 0.0082 s.
SQL execution time: 0.0001 s. (select publication with comments)

Яндекс.Метрика