Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Вопрос про скрипт !
Показать сообщение отдельно

Аватара для Diesel

Старожил


Сообщения: 207
Благодарности: 1

Профиль | Отправить PM | Цитировать


Допустим у тебя есть защищенная директория /usr/local/apache/htdocs/sec_docs

Ты должен сделать так:

1) Создать в директории /usr/local/apache/htdocs/sec_docs файл .htpasswd (имя начинается с точки - это важно) с помощью утилиты htpasswd:

$htpasswd -c /usr/local/apache/htdocs/sec_docs/.htpasswd user01
Adding password for user01.
New password: *************
Re-type new passwd: *************

для ПЕРВОГО юзера (ключ -c означает стереть старый, если есть и создать новый .htpasswd) и

$htpasswd /usr/local/apache/htdocs/sec_docs/.htpasswd user02
Adding password for user02.
New password: *************
Re-type new passwd: *************

для второго и следующих юзеров. (ключ -c НЕ ИСПОЛЬЗУЕТСЯ)

$htpasswd /usr/local/apache/htdocs/sec_docs/.htpasswd user01
Changing password for user01.
New password: *************
Re-type new passwd: *************

позволяет поменять пароль юзера (user01 в нашем примере) (ключ -c НЕ ИСПОЛЬЗУЕТСЯ)

В итоге получится текстовый файл .htpasswd такого вида:

user01: DFG8cdhs84r74
user02: HJdsfi48567hsdi

с ЗАШИФРОВАННЫМИ паролями

2) Создать в директории /usr/local/apache/htdocs/sec_docs файл .htaccess (имя начинается с точки - это важно!) простым редактором (например, vi) такого содержания:

AuthType Basic
AuthName "Secured documents"
AuthUserFile "/usr/local/apache/htdocs/sec_docs/.htpasswd"
Require valid-user

(Вместо "Secured documents" можешь вставить свое название - это имя области авторизации)

После этого при запросе любого документа из директории sec_docs или ниже, будет вылезать обычное окно авторизации, и если ЛЮБОЙ юзер введет ПРАВИЛЬНЫЕ имя и пароль, его пропустят, если имя или пароль будут неверные, он получит "Forbidden" (доступ запрещен) - что и требовалось доказать

Там можно делать авторизацию по группам, можно указывать конкретные группы и юзеров - смотри доки по Apache, я привел самый простой вариант.
Ты можешь сделать так, чтоб пускать только user01, а остальных не пускать, даже если логин и пароль будут правильны - для этого в .htaccess *вместо Require valid-user вставляешь Require user01

Учти, что хотя пароли в .htpasswd и зашифрованы - по сети они передаются открытым текстом. В большинстве случаев нестрашно, но если ты параноик укажи в .htaccess файле AuthType Digest вместо AuthType Basic, тогда пароли передаются в шифрованном виде, но Apache должен содержать в себе Digest-модуль, и что самое главное, этот метод поддерживают НЕ ВСЕ браузеры (подробнее смотри доки, т.к. я Digest'ом не пользовался)

Пример под Linux, но в Винде все в принципе то же самое, если юзаешь Apache

[s]Исправлено: Prisoner, 1:28 16-03-2004[/s]

Отправлено: 09:56, 15-03-2004 | #9

Название темы: Вопрос про скрипт !