Page 80 - 4475
P. 80
можливості аутентифікації, вбудовані в HTTP-Протокол
(Hypertext Transfer Protocol - протокол передачі
гіпертекстів). Сценарії й Web-Сервери можуть запитувати
аутентифікацію у Web-Браузера. Після цього Web-Браузер
повинен вивести на екран діалогове вікно або щось подібне
й запросити в користувача необхідну інформацію. Хоча
Web-Сервер запитує нові деталі аутентифікації в кожному
запиті користувача, Web-браузеру немає необхідності
запитувати цю інформацію для кожної сторінки. У
загальному випадку браузер зберігає деталі аутентифікації,
поки відкрито вікно браузера, і автоматично відправляє їх
без втручання з боку користувача.
Описана можливість HTTP-протоколу називається
базовою аутентифікацією. Базову аутентифікацію можна
включити засобами Web-сервера.
<?php
// якщо використовується IIS, потрібно встановити
змінні
// $_SERVER['PHP_AUTH_USER'] і
$_SERVER['PHP_AUTH_PW']
if ((substr($_SERVER['$SERVER_SOFTWARE'], 0, 9) ==
'Microsoft') &&
(!isset($_SERVER['$PHP_AUTH_USER'])) &&
(!isset($_SERVER['$PHP_AUTH_PW'])) &&
(substr($_SERVER['$HTTP_AUTHORIZATION'], 0, 6)
== 'Basic ')
) {
list($_SERVER['$PHP_AUTH_USER'],
$_SERVER['$PHP_AUTH_PW']) =
explode(':',
base64_decode(substr($_SERVER['$HTTP_AUTHORIZATION'
], 6)));
}
// Замініть цей оператор запитом до бази даних або
чимось подібним
if ($_SERVER['$PHP_AUTH_USER'] != 'user' ||
($_SERVER['$PHP_AUTH_PW'] != 'pass')) {
// Користувач не надав інформацію,
// або вона неправильна
header('WWW-Authenticate: Basic realm="Realm-
75