Використання файлу

Використання директив файлу .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

Інші статті схожою тематики:

Схожі статті