|
|
|
| Наверняка многие Web-разработчики использовали авторизацию, реализованную в Web-сервере Apache и основанную на конфигурационных файлах .htaccess и .htpasswd (http://www.softtime.ru/info/articlephp.php?id_article=27). Это очень удобный способ, можно закрыть целую директорию, с системой администрирования и больше ни о чём не заботится - Apache сделает за вас всю грязную работу, спросит у пользователя пароль и проверит его. У этого метода имеются фундаментальные недостатки - очень сложно настроить конфигурационные файлы, пути в которых должны быть абсолютными, а пароли зашифрованными и сложно добавлять пользователей - это необходимо существлять вручную при помощи утилиты htpasswd.exe, входящей в состав дистрибутива Web-сервера Apache.
Наверняка вы задумывались как бы скрестить этот способ аутентификации с базой данных MySQL или файлом. Т.е. чтобы пользователей можно было безболезненно добавлять при помощи Web-интерфейса или они сами могли регистрироваться в системе? При этом в момент авторизации их бы встречало привычное окно HTTP-Basic авторизации? Данный скрипт поможет вам осуществить эту идею.
Хранение пользователей и их паролей осуществляется в таблице базы данных MySQL. Вы без труда сможете изменить эту таблицу или использовать уже существующую таблицу форума, Интернет магазина и т.п. При этом, чтобы защитить файл в него достаточно ключить один модуль системы авторизации "security_mod.php". Этот модуль будет полезен всем, кто пользуется скриптами расположенными в разделе downloads IT-студии SoftTime, системы администрирования которых необходимо защищать при помощи связки .htaccess и .htpasswd (http://www.softtime.ru/info/articlephp.php?id_article=27).
http://www.softtime.ru/info/authorization.php | |
|
|
|
|
автор: method_ (23.08.2005 в 20:56) |
|
|
для: cheops
(23.08.2005 в 16:59)
| | ссылка битая... | |
|
|
|
|
|
|
|
для: method_
(23.08.2005 в 20:56)
| | Спасибо, поправлено. | |
|
|
|
|
|
|
|
для: cheops
(24.08.2005 в 01:10)
| | блин прикольный скриптик=)
cheops скажите , почему когда закрываешь страницу
(не броузер) после удачной авторизации то когда обращаешся
к ней ещё раз, авторизацию не надо проходить...
В куках нет ни каких значений, сессий вроде не стартовалось....
почему так? | |
|
|
|
|
|
|
|
для: method
(24.08.2005 в 07:06)
| | Браузер помнит параметры авторизации (логин и пароль) и передает их незаметно для Вас при каждом обращении к серверу. Но только к вашему серверу. Если вы выйдете за пределы своего сайта, то параметры авторизации передаваться не будут. А когда снова вернетесь, то логин и пароль снова будут передаваться автоматически. До тех пор пока не закроете окно браузера. | |
|
|
|
|
|
|
|
для: cheops
(23.08.2005 в 16:59)
| | Позвольте не согласиться вот с этим:
очень сложно настроить конфигурационные файлы, пути в которых должны быть абсолютными, а пароли зашифрованными и сложно добавлять пользователей - это необходиомо осуществлять вручную при помощи утилиты htpasswd.exe, входящей в состав дистрибутива Web-сервера Apache.
На сайте организации, где работаю, мне удалось написать систему авторизации, использующую защиту как со стороны скрипта, так и со стороны сервера.
Просто в файле .htaccess - указываем группы, которые будем пущать в папку, и путь к файлам .htgroups и .htpasswd, в которых будут храниться логины пользователей, состоящих в группе, и файл с паролями, соответственно. Все просто. При регистрации нового пользователя, он заносится в базу данных, и в файл .htpasswd (пароль шифруется php-функцией crypt(), правда работает только под *nix-ами), при назначении прав доступа - имя добавляется в .htgroups. Ничего сложного в парсинге одного файла, с логинами, разделенными пробелами, не вижу. Данная технология работает уже три месяца, и нареканий пока к ее работе нет. | |
|
|
|
|
|
|
|
для: JC_Piligrim
(05.09.2005 в 16:57)
| | Выложите в свободное использование? | |
|
|
|
|
|
|
|
для: cheops
(05.09.2005 в 19:19)
| | Как только, так сразу. ;) Надо переписать, чтобы минимум зависимостей было - у меня с кучей кода еще связано, поэтому буду отрезать и абстрагировать. | |
|
|
|
|
|
|
|
для: cheops
(23.08.2005 в 16:59)
| | Подскажите, каким образом можно сделать так, что-бы если пользователь отказывается от авторизации, он попадал, например на заглавную страницу сайта? | |
|
|
|
|
|
|
|
для: swad
(07.02.2006 в 21:59)
| | В .htaccess пропишите обработку 401 кода-возврата
ErrorDocument 404 /404.php
|
А в файле 404.php, в корне сайта осуществите редирект
<?php
header("Location: /index.php");
?>
|
| |
|
|
|