PDA

Просмотр полной версии : Авторизация администратора.


blaga
28.12.2006, 14:10
Пишу свой проект, задумался на тему аторизирования Администратора. На сайте не будет никакой регистрации или пользователей. Только один админ. Решил использовать вот такую конструкцию для авторизации админа

<?php
$name="lol";
$pass="lol";
if(!isset($PHP_AUTH_USER))
{
Header('WWW-Authenticate: Basic realm="Enter in to Admin Panel."');
Header('HTTP/1.0 401 Unauthorized');
exit;
}
else
{
if(($PHP_AUTH_USER != $name ) || ($PHP_AUTH_PW != $pass))
{
Header('WWW-Authenticate: Basic realm="Enter in to Admin Panel."');
Header('HTTP/1.0 401 Unauthorized');
exit;
}
}

?>

А потом вставлять его инклудом в каждый файл в админке. Хочу услышать мнение, безопасно ли это? Удобно ли? С аргументами пожалуйста.

DIAgen
28.12.2006, 14:31
А не проще будет просто в папку админа кинуть файлик .htaccess с Basic авторизацией.

А как ты предлагешь сделать, это надо будет каждый раз водить логин и пароль при переходе с одно файла на другой, проще созадать сессию и сней все делать!

GreenBear
28.12.2006, 14:37
это надо будет каждый раз водить логин и пароль при переходе с одно файла на другой,
да ну?
А как ты предлагешь сделать, это надо будет каждый раз водить логин и пароль при переходе с одно файла на другой, проще созадать сессию и сней все делать!
нет не проще.
Хочу услышать мнение, безопасно ли это?
Конечно, чем же нет.
Удобно ли?
Да как и все остальное, где нужно авторизироватца.

blaga
28.12.2006, 15:04
2DIAgen, не надо каждый раз. Мне почему то кажется что он и так сессию создает(хотя наверное дело в чем то другом). А про .htaccess а слышал, читал, я так понял там надо что то кодировать какой то программулиной....
2Green_Bear, раз безопасно значит оставим.
Может еще кто нибудь что нибудь скажет по теме?

fucker"ok
28.12.2006, 15:11
сессию он не создает, просто сохраняет логин:пасс видимо и при каждом запросе к странице логинится заново.
А потом вставлять его инклудом в каждый файл в админке
Я бы сделал один файл амдинки, пусть index.php с авторизацией, а дальше на основе полченных данных подгружал другие модули.

blaga
28.12.2006, 15:17
однако сохраняет он его только до закрытия браузера....
Я бы сделал один файл амдинки, пусть index.php с авторизацией, а дальше на основе полченных данных подгружал другие модули.
Какая разница?

r@mbler
28.12.2006, 16:51
<?php
$name="c4ca4238a0b923820dcc509a6f75849b"; // логин пользователя
$pass="c4ca4238a0b923820dcc509a6f75849b"; // пароль пользователя
$heshname = $HTTP_SERVER_VARS['PHP_AUTH_USER'];
$heshpass = $HTTP_SERVER_VARS['PHP_AUTH_PW'];
$heshname = md5($heshname);
$heshpass = md5($heshpass);
if (!isset($heshname) || $heshname!=$name || $heshpass!=$pass)
{
header("WWW-Authenticate: Basic realm=\"Auth\"");
header("HTTP/1.0 401 Unauthorized");
exit("Access Denied");
}
?>

так вроде безопаснее

GreenBear
28.12.2006, 16:52
так вроде безопаснее
я бы не сказал. если можно просмотреть файл, то скорее всего можно и его отредактировать. Так что шифровка тут лишне.

r@mbler
28.12.2006, 17:07
я бы не сказал. если можно просмотреть файл, то скорее всего можно и его отредактировать. Так что шифровка тут лишне.

А если только прочитать смогут?
Бац и прочтут пароль.
А так хоть есть дополнительная защита.

GreenBear
28.12.2006, 17:33
хехе, я не думаю, что блага такой дурак ;)
на мой взгляд это лишнее.

Talisman
28.12.2006, 17:35
лучше еще если зенд от любопытных читателей зендить)

r@mbler
28.12.2006, 17:37
Мы все люди, а люди ошибаются.
Не зря в форумных БД все пароли хранятся в зашифрованом ввиде

blaga
28.12.2006, 17:40
2Green_Bear, хе, смотри не перехвали. ;) Всем спасибо, все свободны. :) Вопрос я решил. Как говорится спАсЫбА что поправили кЕпку. :)

blaga
06.01.2007, 17:39
Все бы было хорошо. Но вот тема у меня не работает на хосте. На локалхосте все как надо а на хосте не канает. Я подозреваю что это из за register_globals Off. Может быть кто нить подскажет как быть?

blaga
06.01.2007, 17:57
Ответ нашел в поисковиках. :)
нужно было только заменить $PHP_AUTH_USER на $_SERVER[PHP_AUTH_USER] и так же с паролем.