Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Подскажите, на сколько безопасна авторизация?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
MXM
Отправлено: 03 Мая, 2008 - 20:36:01
Post Id


Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




Скажите, на сколько безопасен способ авторизации для доступа к админке, приведенный ниже?:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. /*Приведенные ниже две строчки подключаются в  через include к этому файлу */
  3.       $db = mysql_connect ("localhost","user","12345");
  4.       mysql_select_db("phpsite",$db);
  5.  
  6.  
  7. if (!isset($_SERVER['PHP_AUTH_USER']))
  8.  
  9. {
  10.         Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
  11.         Header ("HTTP/1.0 401 Unauthorized");
  12.         exit();
  13. }
  14.  
  15. else {
  16.         if (!get_magic_quotes_gpc()) {
  17.                 $_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
  18.                 $_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
  19.         }
  20.  
  21.         $query = "SELECT pass FROM userlist WHERE user='".$_SERVER['PHP_AUTH_USER']."'";
  22.         $lst = @mysql_query($query);
  23.  
  24.         if (!$lst)
  25.         {
  26.             Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
  27.         Header ("HTTP/1.0 401 Unauthorized");
  28.         exit();
  29.         }
  30.  
  31.         if (mysql_num_rows($lst) == 0)
  32.         {
  33.            Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
  34.            Header ("HTTP/1.0 401 Unauthorized");
  35.            exit();
  36.         }
  37.  
  38.         $pass =  @mysql_fetch_array($lst);
  39.         if ($_SERVER['PHP_AUTH_PW']!= $pass['pass'])
  40.         {
  41.             Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
  42.            Header ("HTTP/1.0 401 Unauthorized");
  43.            exit();
  44.         }
  45. }
  46. ?>


Весь код вынесен в отдельный файл php, который подключается через include к каждой странице админки...
 
 Top
Andrey5555
Отправлено: 03 Мая, 2008 - 21:39:12
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007  


Помог: 0 раз(а)




Зачем к каждой странице? Иди просто от главной админки.
 
 Top
MXM
Отправлено: 03 Мая, 2008 - 21:53:46
Post Id


Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




А вдруг кто-то догадается набрать в адресной строке не просто http://site[dot]ru/admin/ а http://site[dot]ru/admin/str1.php и в итоге минуя аутентификацию на главной странице попадет на страницу где возможно редактирование какого-либо содержимого сайта...

У меня весь админский интерфейс разбит на несколько страниц - для каждой свои функции, я неделаю ничего мегасложного, простой сайтец - простая админка...

Я не увидел ответа на свой вопрос "на сколько безопасен этот способ?"
 
 Top
Andrey5555
Отправлено: 03 Мая, 2008 - 22:24:18
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Авг. 2007  


Помог: 0 раз(а)




Ты то что написал пробовал? Что получить доступ ему потребуеться логин и пароль. Способ абсолютно безопасен так как это HTTP - авторизация. В ней ты не передаеш открытых переменных.
 
 Top
MXM
Отправлено: 03 Мая, 2008 - 22:27:57
Post Id


Новичок


Покинул форум
Сообщений всего: 34
Дата рег-ции: Февр. 2008  


Помог: 0 раз(а)




Спасибо, ответом удовлетворен.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB