Тема 4 Организация доступа к ресурсам портала 1. Базовая аутентификация пользователей 2. Автоматическая регистрация и аутентификация пользователей 3. Аутентификация во время сеанса пользователя Цель темы – сформировать представление о технологиях разграничения доступа пользователей к ресурсам портала 1
2 Аутентификация – это процедура доказательства пользователем того, что именно ему принадлежит введенный им идентификатор (логин, пароль) Авторизация – это процедура наделения легального пользователя системы правами выполнять определенные действия над ресурсами системы Авторизация осуществляется только тех пользователей, которые успешно прошли аутентификацию
При обращении браузера в защищаемую директорию, сервер Apache в ответ посылает заголовок с кодом 401 Браузер посетителя принимает заголовок с кодом 401 и выводит окно с полями для ввода имени пользователя и пароля. После ввода имени и пароля эти данные отсылаются назад серверу, который проверяет имя пользователя на предмет нахождения в специальном списке, а пароль на правильность. Если все верно, то посетитель получает доступ к ресурсу. Браузер кэширует не только имя и пароль, чтобы передавать их при каждом запросе, но и область действия. Кэширование параметров аутентификации, обычно осуществляет только в пределах одного сеанса. При базовой аутентификации имя пользователя и его пароль передаются в сеть в открытом виде При digest- аутентификации передается хеш-функция пароля (на сервере необходимо установить модуль mod_auth_digest)
Файл.htaccess – это файл, который дает возможность конфигурировать работу сервера в отдельных директориях (папках), не предоставляя доступа к главному конфигурационному файлу httpd.conf. AuthType Тип используемой аутентификации: Basic AuthName Имя области действия аутентификации. Текст, помогающий посетителю понять, куда он пытается получить доступ AuthUserFile путь к файлу с паролями (.htpasswd) AuthGroupFile путь к файлу групп, если он существует Require Одно или несколько требований, которые должны быть выполнены для получения доступа к закрытой области
5 AuthType Basic AuthName "Only for administrator!" AuthUserFile /usr/host/mysite/.htpasswd require user admin root Директива Require определяет кому разрешен доступ к закрытой области: require valid-user – разрешен доступ всем прошедшим проверку; require user admin alex mango – разрешен доступ только посетителям с именами admin, alex, mango; require group admins – разрешен доступ всем пользователям из группы admins
Файл с паролями создается утилитой htpasswd.exe Ключ с указывает, что необходимо создать новый файл с паролями Ключ m определяет шифрование по алгоритму MD5
Перенаправление (редирект) на другие ресурсы: Redirect / Перенаправление (редирект) на другие ресурсы: Redirect / Перенаправление на страницы ошибок: Перенаправление на страницы ошибок: ErrorDocument 404 /404. html ErrorDocument 404 /404. html Перенаправление на страницы ошибок: Перенаправление на страницы ошибок: ErrorDocument 404 /404. html ErrorDocument 404 /404. html Изменение названия индексных файлов: Изменение названия индексных файлов: DirectoryIndex index.html index.php DirectoryIndex index.html index.php Изменение названия индексных файлов: Изменение названия индексных файлов: DirectoryIndex index.html index.php DirectoryIndex index.html index.php определение кодировки, в которой сервер "отдает" файлы: AddDefaultCharset windows-1251 определение кодировки, в которой сервер "отдает" файлы: AddDefaultCharset windows-1251 Выполнять код PHP в файлах HTML: Выполнять код PHP в файлах HTML: RemoveHandler.html.htm RemoveHandler.html.htm AddType application/x-httpd-php.php.htm.html.phtml Выполнять код PHP в файлах HTML: Выполнять код PHP в файлах HTML: RemoveHandler.html.htm RemoveHandler.html.htm AddType application/x-httpd-php.php.htm.html.phtml Запрет доступа к файлам deny from all Запрет доступа к файлам deny from all
Базовая аутентификация не обеспечивает разграничение прав доступа к базе данных 8 Необходимо создать столько пользователей MySql, сколько типов привилегий должно быть у посетителей портала
9 CPanel это полнофункциональная Web-ориентированная панель управления, позволяющая управлять доменом через Web- интерфейс
Сравнение хеш-функции с учетными данными в соответствующей таблице базы данных 10 Авторизация пользователя
11 header("WWW-Authenticate: Basic realm= \Защищаемая область\"); header("HTTP/ Unauthorized"); header("WWW-Authenticate: Basic realm= \Защищаемая область\"); header("HTTP/ Unauthorized"); $PHP_AUTH_USER $PHP_AUTH_PW $PHP_AUTH_USER $PHP_AUTH_PW
HTTP-протокол, лежащий в основе Web, не сохраняет информации о состоянии сеанса 12 Любое обращение клиента сервер воспринимает как обращение нового клиента Способы передачи данных из одного скрипта в другой Через массивы $_GET и $POST Через массивы $_GET и $POST Через механизм сессий Через механизм cookies Через файлы или таблицы БД
Сессия – текстовый файл, хранящий пары «ключ/значение» на стороне сервера session_start() – инициализация сессии в начале каждой страницы Доступен суперглобальный массив $_SESSION Завершение сессии – session_destroy() Пример: Текуший идентификатор сессии – session_id() echo session_id()
Cookie – текстовый файл типа txt, хранящий пары «ключ/значение» на стороне клиента (если выставлено время жизни) setcookie(name[,value[,expire[,path]]]) – типовое создание cookie в начале страницы Доступен суперглобальный массив $_COOKIE Установка времени жизни – time() или mktime() setcookie(name,value,time()+600)