]]>
]]>
Рейтинг@Mail.ru

HTTP - авторизация на PHP

Материал из Веб программирование.

Перейти к: навигация, поиск

Удобная и простая HTTP - авторизация на вашем сайте через PHP

Все это можно организовать средствами PHP на условиях полной кроссерверности, т. е. работать будет как на Apache, так и на nginx, IIS или любом другом веб-сервере. Только речь сейчас пойдет не о папке, а о любом PHP-скрипте, который можно доработать так, что он будет выполняться только после авторизации.

Например, есть у вас админка к сайту, представляющая собой один-единственный файл admin.php, и все руление осуществляется через него. Находится он в той же папке, что и остальные файлы сайта, поэтому доступ надо ограничить только для него. Тут-то, чтобы не писать авторизацию через HTML-форму с сессиями, и пригодится следующий способ (который за 3 минуты можно поставить и настроить):

// задаем параметры
$title = "Секретная страница"; // заголовок окна с запросом
$user = "testuser"; // имя пользователя
$pass = "testpass"; // пароль
 
// если имя с паролем заданы неправильно или не заданы вообще — запрашиваем их
if(@$_SERVER['PHP_AUTH_USER'] != $user || @$_SERVER['PHP_AUTH_PW'] != $pass)
{
  header('WWW-Authenticate: Basic realm="'.$title.'"');
  header('HTTP/1.0 401 Unauthorized');
  die("В доступе отказано.");
}
 
// тут пишем код, который выполняется при выполненном входе
echo "Доступ открыт!";

Если файлов несколько, то из первых двух блоков этого кода полезно сделать отдельный файл типа auth.inc.php и инклюдить его всюду, где нужно. Также, если вы параноик, для пущей безопасности можно писать не сами пароли, а их MD5-шифры:

// …
$user = "5d9c68c6c50ed3d02a2fcf54f63993b6"; // шифр имени пользователя
$pass = "179ad45c6ce2cb97cf1029e212046e81"; // шифр пароля
// …
if(@md5($_SERVER['PHP_AUTH_USER']) != $user || @md5($_SERVER['PHP_AUTH_PW']) != $pass)
// …

Хотя можно и в голом виде пароли хранить, все равно никто не доберется до исходников (а если доберется, то и шифрование md5 не поможет, в наши дни при достаточном знание и умение пользоваться поисковиком особо труда не доставляет получить обратный шифр, не раз приходилось уже пароли восстанавливать, в тех случаях когда крайне не хотелось его менять=) ).

]]>
Google+
]]>
Личные инструменты
Хочешь еще цитату? Единственная вещь, которая может быть страшнее, чем программист с отверткой или разработчик аппаратуры с программой – это пользователь с проволочной пилой и корневым паролем.Элизабет Звики
веб-программирование
Просмотры
чтим

Deprecated: Function set_magic_quotes_runtime() is deprecated in /var/www/webproger/data/www/webproger.ru/1c6a72389c0fd92079ac7ae7cd356173/sape.php on line 218 Deprecated: Function set_magic_quotes_runtime() is deprecated in /var/www/webproger/data/www/webproger.ru/1c6a72389c0fd92079ac7ae7cd356173/sape.php on line 224

]]>
Rambler's Top100
]]>
]]>
]]>