.htaccess aвторизация - ограничение доступа к сайту (директории, файлу)

Здравствуйте!
Я только начал осваивать html, xml, dhtml и т.д. Сам написал сайт для своей учебной группы в универе и я бы хотел исключить доступ посторонних людей на сайт.
Я хотел бы узнать: как на сайте можно организовать процедуру авторизации??? (регистрация на сайте не нужна, т.к. я сам сделаю для них логины и пароли)!
P.S. Если можно, то скиньте мне и текст всего этого процесса.

Заранее благодарен.
Ден
.htaccess aвторизация - ограничение доступа к сайту (директории, файлу)

Вам должно помочь ограничение доступа при помощи Apache. Управлять поведением Apache можно посредством файла .htaccess (по умолчанию определено директивой <AccessFileName> файла httpd.conf), который должен находится в директории, доступ к которой мы ограничиваем. Если его нет - придется создать.

Для ограничения доступа к сайту (к корневой директории) необходимо надо в файл внести несколько команд, которые в дальнейшем распознает и обработает Apache.

AuthType Basic
AuthName "Enter password"
AuthUserFile /pub/site.ru/.htpasswd
AuthGroupFile /pub/site.ru/.htpasswd
Require valid-user
Require group Group1

<AuthType> Basic — самый простой и распространенный тип аутентификации. Результат ее работы появляется окно ввода комбинации login/password.


Введенные данные отсылаются на сервер, где Apache сверяет, достоверные они или нет. Если да, то пользователь получает доступ к защищенной зоне плюс специальное имя-переменную в распоряжение — область действия. В противном случае доступ к защищенной области, разумеется, не откроется.

Имя защищенной зоны (<AuthName>) — оно отображается в заголовке окна для ввода логина/пароля. Заголовку желательно давать английское наименование.

Директива <AuthUserFile> указывает на полный (абсолютный) путь к файлу паролей относительно корня сервера. Именно сервера, а не сайта. Неправильно прописывать путь расположения файла относительно каталогов /htdocs, /www. Замечу: в этом частая ошибка многих новичков. Как же выяснить правильный путь для директивы? Вот вам верный и простой способ. Создайте в текстовом редакторе PHP-файл с запросом <? phpinfo() ?> и запустите его на хосте. Браузер отобразит таблицу с различными переменными и их значениями. В столбце Variable найдите строку DOCUMENT_ROOT или _SERVER["DOCUMENT_ROOT"]. Напротив, во втором столбце, будет указан полный путь от сервера к домашней директории.

Файл паролей это простой текстовый файл. Он должен иметь следующую структуру:
user1:password
user2:password
...
Создается файл аналогичной структуры в любом текстовом редакторе. Имя и расширение могут быть любыми, однако .htpasswd все же предпочтительнее.
Пароли хранить лучше в зашифрованном виде. Для этого используют утилиту Htpasswd.

Скачать Вы ее сможете тут http://www.softtime.ru/files/htpasswd.zip.

Пользоваться:
htpasswd -c filename username, где filename — имя файла, username — логин пользователя, а –c — ключ, указывающий на создание нового файла. Когда вам будет нужно добавить в имеющийся список нового пользователя или поменять пароль, просто уберете параметр –c.



Таким образом произойдет обновление содержания. После программа предложит ввести и подтвердить пароль для пользователя username. По умолчанию он (пароль) хэшируется в MD5 (ключ –m); как вариант также применимо и SHA-1-шифрование (ключ –s), благо оба формата без проблем распознаются «Апачем». Наконец, после сообщения «Adding password for…» зашифрованный .htpasswd готов к использованию.

<AuthGroupFile> — по надобности. Когда доступом к приватной зоне обладает большое количество посетителей, удобно распределить их по группам, например: пользователи, модераторы и т.д. Структура файла групп должна быть такой:

Group1: user1 user2 user3
Group2: user1 user2 user3

GroupN здесь — название группы, а userN — имя посетителя.

Команда Require определяет тех пользователей (или ту группу), которым (которой) предоставляется вход в защищенную зону. Опцией valid-user разрешается доступ всем, кто в списке auth-файла. Если вы хотите организовать доступ к ресурсу лишь нескольким лицам из списка, укажите Require user test1 test2, ..., где test1, test2 и т. д. — имена разрешенных пользователей. Предоставление доступа группам — соответственно Require Group1 (Group1 — группа).

После того как .htaccess создан, поместите его в ту директорию, которую вы планируете защитить (в Вашем случае в корень) от посторонних. Возможно, подобный файл уже существует — тогда просто допишите Auth-директивы в содержание .htaccess.

К вашему сведению:

.htaccess — более гибкий в настройке конфигурационный файл.
1. Установка пароля только на файлы с расширением .zip:

<FilesMatch ".zip$">
AuthName "text"
AuthType Basic
AuthUserFile /pub/site.ru/.htpasswd
Require valid-user
</FilesMatch>

Директива <FilesMatch> «отсеивает» иные расширения и по маске ограничивает доступ к определенным файлам. Подобным образом устанавливается ограничение на несколько расширений сразу:

<FilesMatch ".(gif|jpg|png)$">

2. Доступ к защищенной зоне разрешен только пользователям с определенными ip:

order deny,allow
deny from all
allow from <ip>
allow from …

Аналогично, но уже командой deny, осуществляется блокировка конкретных ip:

order allow deny
allow from all
deny from 127.0.0.1
deny from …

Кстати, кроме ip-адресов, Apache воспринимает и буквенные имена хостов (site.ru и т. п.), например:

Allow|deny from localhost

Полезный совет?

эксперт, ответивший на вопрос

Nochka
Альтруист

Похожие статьи

Комментарии

  • коля

    коля

    26.02.2013 03:46 #

    Вот Тут Все http://msn.ru-internet.info

    Ответить

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

* - скрыт от пользователей, только для уведомлений