| АВТОРИЗАЦІЯ ЗАСОБАМИ WEB-CEPBEPA
Для того, щоб до файлів, що знаходяться в якій-небудь директорії, могли мати доступ лише певні відвідувачі, що знають два кодові слова (логін і пароль), можна використовувати вбудовані в Web-сервер Apache засобу обмеження доступу.
У
конфігураційних файлах Apache є спеціальна строчка -accessfilename. Там вказано ім'я файлу, знайшовши який в тій або іншій теці, Apache виконає по відношенню до неї вказівки, що містяться в цьому файлі. За традицією цим ім'ям є .htaccess, і саме такий воно встановлене на всіх серверах хостингу. У файл .htaccess можна помістити команди обмеження доступу до тієї теки, в якій це файл знаходиться.
Виглядають ці команди так. Спочатку вказується назва захищеної зони - Authname. Саме ця назва згодом виводитиметься в запиті відвідувачеві (мал. 8.1).
Authname "Private Zone"
Authtype Basic
У наступному параметрі - 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
Коментар:
To, що потрібно вказувати саме абсолютну дорогу до файлу з паролями, не повинно вас дивувати. Це зроблено для того, щоб можна було використовувати один і той же файл паролів для організації обмеження доступу відразу до декількох тек і навіть декільком аккаунтам. В результаті в тому випадку, якщо на сервер додається ще одна тека із захистом, то не потрібно знов роздавати відвідувачам нові логіни і паролі для доступу вже до неї -достаточно прописати дорогу до вже наявного файлу з паролями у файлі .htaccess, і всі вказані в нім паролі автоматично стануть дійсними і для входу в новостворену теку.
Отже, побажавши "запароліть" доступ до ресурсів якої-небудь теки, створіть файл з ім'ям .htaccess з вищезгаданими параметрами.
Коментар:
Зробити це командою "Провідника" або "Нортона" вам не удасться, оскільки ці програми не допускають створення файлів без імені (а .htaccess вони сприймають саме як розширення без імені!), тому наберіть відповідний текст в якій-небудь програмі, що дозволяє це зробити (наприклад, Viewtext Георгія Гуляєва, http://www. altailand. ru).
Створивши файл .htaccess, завантажите програму для створення файлу паролів і попрацюйте з нею. Після цього завантажите обидва файли на свій сайт: .htaccess - в теку, що закривається, а файл з паролями - відповідно до прописаного в .htaccess дорогою до нього (ріс.8.1).
Ріс.8.1. Пароль на теку засобами web-сервера? Вистачає двох файлів - .htaccess і .htpasswd...
От і все! Тепер при спробі запиту будь-якого ресурсу із захищеної теки (у тому числі і картинок, включених в інші сторінки тегом < img...>) відвідувачеві буде виданий стандартний запит логіна і пароля (мал. 8.2). Якщо логін і пароль збігаються з тими, що зберігаються у файлі паролів (за умовчанням є три спроби введення), то доступ вирішується, якщо немає - засобами web-сервера виводиться відповідне повідомлення.
Ріс.8.2. Запит на вхід в теку
Доступ відкривається "для певного вікна браузера і всіх його дочірніх вікон". Іншими словами, якщо відвідувач одного дня ввів правильний логін і пароль, то він, працюючи в одному і тому ж вікні браузера, може не лише вільно подорожувати по всіх ресурсах в запароленной теці, але і, вийшовши з неї, вільно знов в неї увійти. Те ж саме вірно і для всіх вікон браузера, відкритих з початкового за допомогою команди "Відкрити в новому вікні". А ось якщо користувач відкриє нове вікно браузера і зайде вже в нім в цю теку, то запит на введення логіна і пароля з'явиться знов (зрозуміло, якщо сторінка не
була узята з кеша браузера - в останньому випадку достатнє її відновити).
Використовувати даний спосіб удається не завжди - адміністрація сервера інший раз не дозволяє це робити відвідувачам, та і програма для створення файлу паролів не завжди під рукою. Проте засоби РНР дозволяють обійтися без вживання файлів .htaccess.
|