Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   авторизация с .htaccess (https://forum.antichat.xyz/showthread.php?t=35512)

alextoun 14.03.2007 21:46

авторизация с .htaccess
 
Для того, чтобы к файлам, находящимся в какой-либо директории, могли иметь доступ лишь определенные посетители, знающие два кодовых слова (логин и пароль), можно использовать встроенные в Web-сервер Apache средства ограничения доступа.
В конфигурационных файлах Apache есть специальная строчка -AccessFileName. Там указано имя файла, найдя который в той или иной папке, Apache выполнит по отношению к ней указания, содержащиеся в этом файле. По традиции этим именем является .htaccess, и именно таким оно установлено на всех серверах хостинга. В файл .htaccess можно поместить команды ограничения доступа к той папке, в которой это файл находится.
Выглядят эти команды так. Вначале указывается название защищенной зоны - AuthName. Именно это название будет впоследствии выводиться в запросе посетителю...

Цитата:

AuthName
"Private Zone"
В следующем параметре - AuthUserFile - указывается путь к файлу с логинами и паролями посетителей. Этот файл должен быть создан в особом формате, так как пароли в нем хранятся в зашифрованном виде. Для создания файлов с паролями применя-
ются специальные программы - такую программу вы можете взять, например, в разделе технической поддержки компании Valuehost по адресу http://support.valuehost.ru/bbs/files/69-htpasswd.exe. Запускать ее следует из командной строки в формате 69-htpasswd.exe -с имя_файла_паролей логин, а в открывшемся окне ввести пароль (используя только латинские буквы). Чтобы добавить новые логины и пароли в уже имеющийся файл, эту программу следует запускать без параметра -с.
По традиции файл с паролями посетителей принято называть .htpasswd. Обычно Apache настраивается так, что файлы с именами .htaccess и .htpasswd невозможно просмотреть через Web - при такой попытке будет выдаваться лишь сообщение о запрещении доступа. Однако выполнение такой настройки (для этого надо указать несколько параметров в httpd.conf - конфигурационном файле Apache) - целиком на совести администраторов web-сервера.
Обратите внимание, что путь к файлу паролей следует указывать абсолютный - т. е. от корневого каталога сервера с указанием всего дерева каталогов. На серверах хостинга он обычно имеет вид /pub/home/имя аккаунта/..../имя файла паролей, а на вашем локальном компьютере зависит от местоположения web-сервера и его настроек, например, может выглядеть и как f:/www/exper/cov/.htpasswd.

Цитата:

AuthUserFile /pub/home/exper/cov/.htpasswd require valid-user
Создав файл .htaccess, загрузите программу для создания файла паролей и поработайте с нею. После этого загрузите оба файла на свой сайт: .htaccess - в закрываемую папку, а файл с паролями - в соответствии с прописанным в .htaccess путем к нему.
Вот и все! Теперь при попытке запроса любого ресурса из защищенной папки (в том числе и картинок, включенных в другие страницы тэгом < img...>) посетителю будет выдан стандартный запрос логина и пароля. Если логин и пароль совпадают с хранящимися в файле паролей (по умолчанию есть три попытки ввода), то доступ разрешается, если нет - средствами web-сервера выводится соответствующее сообщение:"Анонимныйвход на этот FTP-сервер невозможен"

Доступ открывается "для определенного окна браузера и всех его дочерних окон". Иными словами, если посетитель однажды ввел правильные логин и пароль, то он, работая в одном и том же окне браузера, может не только свободно путешествовать по всем ресурсам в запароленной папке, но и, выйдя из нее, свободно вновь в нее войти. То же самое верно и для всех окон браузера, открытых из исходного с помощью команды "открыть в новом окне". А вот если пользователь откроет новое окно браузера и зайдет уже в нем в эту папку, то запрос на ввод логина и пароля появится вновь (разумеется, если страница не была взята из кэша браузера - в последнем случае достаточно ее обновить).
Использовать данный способ удается не всегда - администрация сервера иной раз не позволяет это делать посетителям, да и программа для создания файла паролей не всегда под рукой. Однако средства РНР позволяют обойтись без применения файлов .htaccess.

Для некоторых конечно не новость, но многим понадобиться.

GoNZo 14.03.2007 21:58

cd /public_html
mkdir admin
chmod g+r,g+x,o-r,o-x admin
chgrp-www -sd admin
cd admin

Дальше прписываем в .htaccess
AuthUserFile /полный/путь/до/.htpasswd
AuthGroupFile /dev/null
AuthName "Adminka"
AuthType Basic

<Limit GET>
require valid-user
</Limit>

Дальше создаем .htpasswd у туда пишем
user;password

Woldemar 06.05.2007 20:15

тут на сайте пытаюсь залезть.
вытянул .htpasswd
admin:xQ0dkNfNQVM3Q
Но почему то когда лезу туда аутентификация не проходит почему?

Isis 06.05.2007 20:43

Мда......идем в раздел "Статьи" и видим прекрасные статьи от Бра...
Зачем баянить?

Zitt 07.05.2007 00:04

Woldemar, xQ0dkNfNQVM3Q - это не пароль, а его хеш в DES...

blackybr 07.05.2007 10:30

дык ведь в никсах есть тулза htpasswd для создания этого файла.. чтобы не мучаться с прописыванием всего =)

htpasswd -c /home/xek/public_html/.htpasswd xek - cоздает

htpasswd -mb /usr/web/.htpasswd-all xek pass - добавляет

htpasswd /usr/local/etc/apache/.htpasswd-users xek - добавляет, или если есть изменяет пасс

флаги

htpasswd -c [ -m | -d | -p | -s ] passwdfile username password

-c создание
-m - крипт в unix(md5) ..
-d - крипт никсовской crypt()
-s - крипт sha
-p -плеинтекст пасы
passwdfile - где хранится пасс.. хтпассвд тобишь
username и password думаю обьяснять не надо )


Время: 21:34