Використання файлу
Використання директив файлу .htaccess - частина друга: парольний захист
Привіт, гості та передплатники блогу 4remind.ru. Сьогодні ми продовжимо знайомитися з директивами файлу .htaccess. У попередній статті наводилися приклади використання найбільш популярних директив сервера Apache в файлі .htaccess. а тут ознайомимося з трохи менш популярними, але тим часом дуже важливим моментами, а саме зі способами пральний захисту каталогів і файлів.
Парольний захист каталогів і файлів
Якщо ж нічого схожого в вікні браузера не з'явилося, то по видимому у вас немає прав на використання парольного захисту, і для вирішення цього питання вам доведеться звернутися за роз'ясненнями до адміністратора сервера (хостингу). Далі ми будемо вважати, що потрібні права все таки є, і ми починаємо готувати парольний захист каталогу або файлів. Саму процедуру підготовки ми розділимо на два етапи, які необхідні для досягнення очікуваного результату, а саме це створення файлу-сховища паролів .htpasswd і файлу .htaccess з конкретним вмістом.
Файл-сховище паролів .htpasswd
Файл .htpasswd може бути як текстовим, так і бінарним, і паролі в ньому можуть зберігатися як у відкритому вигляді, так і в зашифрованому (методи шифрування: md5. Sha). Для кожного користувача ім'я та пароль (розділені двокрапкою) визначається в окремому рядку. Ось приклад файлу .htpasswd без шифрування паролів:
А ось приклад вже з шифруванням паролів:
Причому в цьому прикладі для користувачів вказано однаковий пароль 111111. але для admin3 він шифрувати за алгоритмом «MD5», а для admin4 за алгоритмом «SHA».
З метою безпеки нешифровані паролі взагалі-то краще ніколи не використовувати!
А для створення файлів .htpasswd і генерації паролів краще використовувати спеціальні утиліти, такі як наприклад htpasswd.exe. яка встановлюється разом з сервером Apache під Windows. Знайти цю утиліту можна в підкаталозі «bin» щодо директорії, де встановлено сам Apache.
Утиліту htpasswd.exe можна скачати з цього ж блогу: htpasswd.zip
Параметри утиліти htpasswd.exe для створення або зміни файлу-сховища паролів можна уточнити ввівши в командному рядку наступну команду:
Про всяк випадок приведу список параметрів тут:
Наприклад, Ви вирішили створити новий файл .htpasswd і відразу додати в нього пароль для користувача admin. тоді вам знадобиться виконати команду:
Після її виконання у вас буде запропоновано ввести відповідний пароль, який потрібно ввести двічі, і після цього вже буде створений файл .htpasswd з паролем для користувача admin. зашифрований за алгоритмом MD5.
Якщо ж Вам знадобиться до вже існуючого файлу додати нового користувача, то виконайте наступну команду, вже без ключа «c» в параметрах, в тому ж каталозі:
файл .htaccess
Отже, якщо файл .htpasswd вже створений, то його потрібно закачати на сервер. Зберігати ж файл-сховище паролів .htpasswd найкраще за межами каталогу, в якому знаходиться власне ваш сайт, тобто там, куди немає доступу ззовні. Але якщо такої можливості у вас немає, то звичайно можна .htpasswd розмістити в доступному для вас каталозі, але в цілях безпеки (запобігання крадіжки) варто заборонити до нього доступ за допомогою файлу .htaccess (в каталозі, куди Ви помістіть файл .htpasswd), наприклад так:
Тепер, коду файл з паролями створений і захищений, можна приступати до пральний захисту конкретного каталогу. Для цього в цільовому каталозі потрібно розмістити файл .htaccess приблизно наступного змісту:
Увага! У директиві AuthUserFile повинен бути прописаний абсолютний шлях до файлу .htpasswd від кореня сервера, але ніяк не відносний!
У файлі .htaccess для парольного захисту директорій і файлів можуть бути використані наступні директиви:
- AuthType - Тип використовуваної аутентифікації. Для базової аутентифікації ця директива повинна мати значення: Basic
- AuthName - Ім'я аутентифікації. Текст, який інформує відвідувача про те, куди він намагається отримати доступ і які на це можуть бути встановлені обмеження. Текст може бути будь-яким, наприклад: "Доступ обмежений! Дозволено тільки для VIP-користувачів!"
- AuthUserFile - абсолютний шлях до файлу з паролями (.htpasswd);
- AuthGroupFile - абсолютний шлях до файлу груп, якщо він існує;
- Require - Одне або декілька вимог, які повинні бути виконані для отримання доступу до захищеної області;
Директива Require визначає осіб чи груп. яким доступ дозволений:
- require valid-user - доступ дозволений всім минулим аутентифікацію;
- require admin user1 tester99 - доступ дозволений тільки відвідувачам з іменами admin user1 tester99. Зрозуміло, що вони повинні пройти аутентифікацію згідно із записами у файлі .htpasswd;
- require group administrators - доступ дозволений всім користувачам з групи administrators;
Ось власне і все, що стосується базової пральний захисту файлів і каталогів сайту з використанням файлів .htaccess і .htpasswd. Наостанок кілька прикладів файлу .htaccess:
Дозволяємо доступ тільки для користувачів admin, user1 і vasya
Забороняємо доступ всім, але тільки до файлу mysecret.xls
Інші статті схожою тематики: