Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PI_lektsii_2016.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
6.12 Mб
Скачать

14.1 Авторизація доступу

Протокол HTTP є протоколом "без збереження стану". Це означає, що даний протокол не має вбудованого способу збереження стану між двома транзакціями. Т. е., коли користувач відкриває спочатку одну сторінку сайту, а потім переходить на іншу сторінку цього ж сайту, то грунтуючись тільки на засоби, що надаються протоколом HTTP неможливо встановити, що обидва запити відносяться до одного користувача.

У мережі існує величезна кількість ресурсів. У кожного з них свій адміністратор, тобто людина або група людей, що відповідають за утримання ресурсу і надання користувачам інформації. Функції адміністратора, як правило, включають додавання нової інформації, видалення і редагування існуючої, налаштування способів відображення інформації користувачеві. А в функції користувача (простого відвідувача ресурсу) входить тільки пошук і перегляд інформації.

Згідно з протоколом HTTP всі клієнти абсолютно рівноправні. Як же зрозуміти, хто зайшов на сайт? Звичайний користувач або адміністратор? Якщо це простий користувач, то як зберегти це знання, щоб не допустити відвідувача в закриті архіви сайту? Тобто виникає питання, як ідентифікувати клієнта, який надіслав запит, і зберігати відомості про нього, поки він знаходиться на сайті?

Найпростіший варіант – це реєстрація людини в системі і видача йому логіна і пароля для входу в адміністративну частину системи. Ця інформація зберігається на комп'ютері-сервері, і при вході в систему перевіряється відповідність введених користувачем логіна і пароля тим, що зберігаються в системі. В принципі можна реєструвати і простих відвідувачів. Тоді всіх зареєстрованих користувачів потрібно розділити на групи: адміністратори і прості користувачі, наділивши їх відповідними правами.

Сам скрипт авторизації повинен надавати форму для введення логіна і пароля, перевіряти їх правильність і перенаправляти на секретну сторінку, якщо перевірка пройшла успішно, і видавати повідомлення про помилку в іншому випадку.

Для допуску зареєстрованого користувача після перевірки його логіна та пароля можна скористатися наступним кодом на сторінці авторизації. Нехай на сторінці авторизації є форма для введення логіна і пароля, яка описана в такий спосіб:

<form action=index1.php method=POST>

Login: <input type=text name=login><br>

Password: <input type=password name=password><br>

<input type=submit name=go value=Go>

</form>

Як видно з опису форми дані форми відправляються на сторінку index1.php методом POST. На сторінці index1.php організуємо аналіз логіна і пароля, вважаючи, що дані про зареєстрованих користувачів зберігаються в таблиці users:

<?

$userlogin=$_POST[‘login’];

$userpassword=$_POST[‘password’];

// формуємо запит на пошук користувача з зазначеним логіном

$query=”SELECT FROM users WHERE login=”.$userlogin;

$res=mysql_fetch_array($res);

if(mysql_fetch_row($res)>0)

{

//перевіряємо пароль

if($userpassword==$res[‘password’]

{

echo "Вітаємо Вас,". $ User login;

// Відкриваємо секретну сторінку

Header("Location: secret_info.html");

}

else echo “Невірний пароль”;

else echo “ Користувача з логіном ". $ User login." Не існує!»

?>

Начебто все досить просто. Але припустимо, у нас не одна секретна сторінка, а кілька. Причому вони пов'язані між собою перехресними посиланнями. Тоді виникає необхідність постійно пам'ятати пароль і логін користувача сайту (якщо такий має). Щоб вирішити цю проблему, можна в кожну сторінку вбудувати скрипт, який буде передавати логін і пароль від сторінки до сторінки в якості прихованих параметрів форми. Але такий спосіб не зовсім безпечний: ці параметри можна перехопити і підробити.

У PHP існує більш зручний і безпечний метод вирішення проблеми зберігання даних про відвідувача протягом сеансу його роботи з сайтом - це механізм сесій.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]