Записывать все логины .htaccess / .htpasswd

  1. Получение пароля, отправленного пользователем
  2. .htaccess
  3. срубы htpasswd.php
  4. пример log-htpasswd.log
  5. Отладка авторизации htaccess / htpasswd
  6. Добавьте это в ваш /web/user/domain.com/.htaccess
  7. Исходный код Apache

Распространенный запрос, который я получаю, - как просмотреть и / или зарегистрировать все имена пользователей и пароли, которые клиенты используют для доступа к веб-сайту, защищенному базовой авторизацией htaccess Распространенный запрос, который я получаю, - как просмотреть и / или зарегистрировать все имена пользователей и пароли, которые клиенты используют для доступа к веб-сайту, защищенному базовой авторизацией htaccess.
Эта статья BOSS и покажет вам, как полностью взять под контроль этот аспект безопасности с помощью php и .htaccess, я не верю, что вы найдете, как это сделать где-либо еще в сети.

Получение пароля, отправленного пользователем

Это код php, который вы можете использовать, чтобы показать расшифрованный пароль, который был отправлен клиентом.

$ password = base64_decode (str_replace ('Basic', '', $ _SERVER ['HTTP_AUTHORIZATION'])); echo $ пароль;

.htaccess

# Это указывает на ваш сценарий регистрации, не обязательно должен быть php ErrorDocument 401 /log-htpasswd.php AuthName "Pass" AuthUserFile /.htpasswd AuthType Базовое требование valid-user # Установить переменную env REMOTE_USER в 401 ErrorDocument RewriteEngine On RewriteCase Rase % {ENV: REDIRECT_STATUS} ^ 401 $ RewriteRule. * - [E = REMOTE_USER:% {ENV: REDIRECT_REMOTE_USER}]

срубы htpasswd.php

<? php define ('LOGINS_LOG', '/ web / user / log-htpasswd.log'); if (isset ($ _ ENV ['REDIRECT_REMOTE_USER']) &&! empty ($ _ ENV ['REDIRECT_REMOTE_USER'])) {$ fp = fopen (LOGINS_LOG, 'a +'); fwrite ($ fp, $ _ENV ['REDIRECT_REMOTE_USER']); fclose ($ FP); } ob_start (); заголовок («HTTP / 1.1 401 Требуется авторизация», 1); заголовок («Статус: 401 Требуется авторизация», 1); echo '<! DOCTYPE HTML PUBLIC "- // IETF // DTD HTML 2.0 // EN"> <html> <head> <title> 401 Требуется авторизация </ title> </ head> <body> <h1 id = " Authorization_Required "> Требуется авторизация <a class="sl" href="#Authorization_Required"> </a> </ h1> <p> Этот сервер не может подтвердить, что вы авторизованы для доступа к запрошенному документу. Либо вы указали неверные учетные данные (например, неверный пароль), либо ваш браузер не понимает, как предоставить требуемые учетные данные. &lt;/ P> '; выход; выход(); ?>

пример log-htpasswd.log

просто список имен пользователей попытался username1 Tom rcowen Askapache Dreamhost Dreamadmin

Отладка авторизации htaccess / htpasswd

<? php define ('LOGINS_LOG', '/ web / user / logins.log'); $ fp = fopen (LOGINS_LOG, 'a +'); fwrite ($ fp, $ _ENV ['REDIRECT_REMOTE_USER']. "n"); fclose ($ FP); ob_start (); заголовок («HTTP / 1.1 401 Требуется авторизация», 1); заголовок («Статус: 401 Требуется авторизация», 1); echo '<! DOCTYPE HTML PUBLIC "- // IETF // DTD HTML 2.0 // EN"> <html> <head> <title> 401 Требуется авторизация </ title> </ head> <body> <h1 id = " Authorization_Required-s0 "> Требуется авторизация <a class="sl" href="#Authorization_Required-s0"> </a> </ h1> <p> Этот сервер не может подтвердить, что вы авторизованы для доступа к запрошенному документу. Либо вы указали неверные учетные данные (например, неверный пароль), либо ваш браузер не понимает, как предоставить требуемые учетные данные. </ P> '; if ($ _ SERVER ['REMOTE_ADDR']! == '208.113.183.103') die (); echo '<pre>'; $ password = base64_decode (str_replace ('Basic', '', $ _SERVER ['HTTP_AUTHORIZATION'])); echo $ пароль; print_r ($ _ ENV); print_r ($ _ SERVER); выход; выход(); ?>

Добавьте это в ваш /web/user/domain.com/.htaccess

ErrorDocument 401 /logins.php RewriteEngine On RewriteBase / RewriteCond% {ENV: REDIRECT_STATUS} ^ 401 $ [OR] RewriteCond% {REQUEST_URI} ^ /. * Login * .php $ RewriteRule. * - [E = HTTP_AUTHORIZATION: Авторизация}, E = REMOTE_USER:% {ENV: REDIRECT_REMOTE_USER}] <files login.php> AuthName "Защита" AuthUserFile /web/user/.htpasswd AuthGroupFile / dev / null AuthType Базовое требование valid-user </ Files> веб-браузер и запросите http://site.com/cgi-bin/login.php и попробуйте ввести неправильный пароль, нажать «Отмена», ввести правильный пароль и т. д.

Исходный код Apache

case HTTP_PROXY_AUTHENTICATION_REQUIRED: case HTTP_UNAUTHORIZED: return ("<p> Этот сервер не может подтвердить, что youn" "авторизован для доступа к запрошенному documentn" ". Либо вы указали неверные" "учетные данные (например, неверный пароль), либо yourn" " браузер не понимает, как предоставить "" необходимые учетные данные. </ p> n ");

Больше информации

Lt;/ P> '; выход; выход(); ?