Як зробити авторизацію на сайті. Як зробити авторизацію для адміністраторів на своєму сайті.

Більшість сайтів в інтернеті надають публічний доступ до міститься на них інформації. Загальнодоступні сторінки сайтів може переглянути будь-який бажаючий. Однак до деяких розділів сайтів необхідно надавати обмежений доступ. Наприклад, до сторінок панелі адміністрування. Більшість CMS загального призначення, движків форумів та блогів, мають вбудовані засоби авторизації та розмежування доступу. Але якщо ваш ресурс досить простий і не управляється потужної CMS, а обмежувати доступ треба, то доведеться подумати над тим, як зробити авторизацію на сайті. На щастя, для цього є прості засоби.
Вам знадобиться
  • Сайт, функціонуючий під управлінням сервера apache. Доступ до сайту по ssh. Доступ до сайту по ftp. Конфігурація сервера, роздільна користувача файли .htaccess.
Інструкція
1
Підключіться до сервера по ssh. Якщо у вас встановлений консольний клієнт, наберіть в консолі команду "ssh <ім'я користувача> @ <адрес_сервера>", де <ім'я користувача> - ім'я вашого профілю на сервері, а <адрес_сервера> - символічне ім'я, або IP-адресу сервера. Команда може виглядати так: "ssh vic@receptoman.ru". Після запиту введіть пароль від свого облікового запису. Під windows можна скористатися альтернативними програмами-клієнтами. Одна з таких програм - putty.
2
Перейдіть в кореневий каталог сайту на сервері. Це каталог, не доступний з web. Як правило, в ньому знаходиться підкаталог public_html, в яке поміщено вміст сайту, доступне для перегляду через інтернет. Використовуйте команду cd. Якщо ви не пам'ятаєте повний шлях до папки, використовуйте команду ls для отримання вмісту поточного каталогу і здійснюйте поетапні переходи.
3
Створіть файл паролів в поточному каталозі. Виконайте команду виду "htpasswd -c <имя_файла_паролейимя_пользователя>". Тут <імя_файла_паролей> - коректне ім'я файлу, в який будуть поміщені дані для авторизації, а <ім'я користувача> - один з ідентифікаторів користувачів, які матимуть доступ до розділу сайту. Команда може виглядати так: "htpasswd -c .pwd User1". Після введення команди буде запитаний пароль для користувача з введеним іменем. Після введення пароля буде запитано його підтвердження.
4
Перевірте наявність файлу паролів. Виконайте команду "ls --all". В відображення списку вмісту поточного каталогу повинне бути присутнім ім'я файлу паролів.
5
Додайте ще користувачів, яким буде дозволено доступ. Виконуйте команду виду "htpasswd <имя_файла_паролейимя_пользователя>". Значення параметра <імя_файла_паролей> має бути таке ж, як при створенні файлу паролів. Наприклад, додати в файл з ім'ям .pwd дані для користувача user2, можна командою "htpasswd .pwd user2". Паролі та підтвердження паролів будуть запитані в інтерактивному режимі.
6
Відключитеся від сервера. Введіть команду exit і натисніть Enter.
7
Змініть файл .htaccess. Підключіться до сервера за допомогою програми FTP-клієнта. Зайдіть в каталог, відповідний розділу сайту, для якого необхідна авторизація. Якщо там є файл з ім'ям .htaccess, завантажте його на свій комп'ютер. Якщо такого файлу немає, створіть його на своєму комп'ютері. Додайте в початок файлу .htaccess наступні рядки: AuthType BasicAuthName "вітання" AuthUserFile "путь_к_файлу_с_паролямі" Require valid-userВместо слова "вітання" введіть будь-яку фразу. Вона буде відображатися в діалозі запиту даних користувача в браузері. Замість значення "путь_к_файлу_с_паролямі" введіть повний шлях до файлу з даними для авторизації на сервері. Цей шлях, наприклад, може бути таким: "/home/www/vic/domains/receptoman.ru/.pwd". Збережіть файл .htaccess. Завантажте його на сервер.
8
Перевірте роботу системи авторизації. Зайдіть в розділ сайту, для якого був модифікований файл .htaccess. Якщо все працює коректно, браузер відобразить діалог із запитами даних для авторизації.
Зверніть увагу
Обов'язково переконайтеся, що каталог, в якому знаходиться файл паролів, не доступний через web. В іншому випадку зловмисник зможе заволодіти цим файлом. Паролі в файлі зашифровані. Але, маючи імена користувачів і хеши паролів, набагато простіше підібрати дані для авторизації.
Корисна порада
В адміністративній панелі хостингу може матися функція для швидшого Паролювання директорій. Внаслідок застосування сили також буде створений файл паролів і модифікований файл .htaccess.