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
Форумы портала PHP.SU :: Версия для печати :: Проблемма безопасности, ваше мнение.
Форумы портала PHP.SU » PHP » Программирование на PHP » Проблемма безопасности, ваше мнение.

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

1. Джур - 29 Мая, 2007 - 09:55:07 - перейти к сообщению
У меня есть сайтец вернее что-то вроде CMS (админка вообщем), который неюзает никаких постаронних модулей... Все как говорится свое родное...
Для разграничения доступа к модулю администрирования использую вот такой скрипт:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if(strpos(" ".$_SERVER['PHP_SELF'],'index.php') and !isset($room)){header("Location: admin.php");exit;}
  4. include_once 'db/login.php';
  5. //echo $_SERVER['PHP_SELF'];
  6. function auth()
  7. {
  8.   global $nameurl;
  9.   Header ("WWW-Authenticate: Basic realm="what is you?"");
  10.   Header ("HTTP/1.0 401 Unauthorized");
  11.   exit;
  12. }
  13.  
  14. if (@empty($_SERVER["PHP_AUTH_USER"])) auth();
  15. if ($admin[$_SERVER["PHP_AUTH_USER"]]['p'] == md5($_SERVER["PHP_AUTH_PW"])){
  16.  
  17.         $admin[$_SERVER["PHP_AUTH_USER"]]['key'][]='main';
  18.    $fl=1;foreach($admin[$_SERVER["PHP_AUTH_USER"]]['key'] as $n){
  19.                 if($room==$n){$fl=0;}
  20.         }
  21.         if($fl){
  22.         header("Location: ../admin.php");exit;
  23.    }
  24. }else{auth();}
  25.  
  26. ?>
  27.  

Он подключается в самом начале каждого важного РНР скрипта. Примерно так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $room="news";
  3. include 'index.php';
  4.  


Теперь вопрос, кто-нибуть видит способы обхода такого замка. Улыбка

P.S. файл login.php содержит хеши паролей и доступные "разделы"
2. Viper - 29 Мая, 2007 - 10:31:26 - перейти к сообщению
по идее чтобы максимально обезопасить скрипт от взлома юзают функции и включения. у тебя это есть. но вопрос ещё стоит и в безопасности самого сервера. не забывай что как бы ни был скрипт супербезопасным, могут тупо напрямую взломать сервер.

к тому же авторизация http более как мне кажеться устойчива к взлому. или я ошибаюсь ?
3. Джур - 29 Мая, 2007 - 11:39:57 - перейти к сообщению
Ну в принципе это и есть http авторизация, так что это придает немного оптимизма. Улыбка
А вот за сервер поручится я немогу. Недовольство, огорчение это уже не моя стихия. Недовольство, огорчение
хм... А может злобно все шифровать? Улыбка))
4. Viper - 29 Мая, 2007 - 16:40:39 - перейти к сообщению
ну можно шифровать в md5 сессии и использовать двойной md5 для паролей. можно использовать программы для шифрования скриптов... помимо этого ещё нужно делать максимальные проверки запросов к базе, во избежание атак.
5. Mister - 29 Мая, 2007 - 23:29:01 - перейти к сообщению
Мне кажется http- авторизация более защищена в том плане, что сервер настраивают продвинутые администраторы, а если программист начинающий, то он может что-то пропустить.
6. Джур - 30 Мая, 2007 - 11:24:35 - перейти к сообщению
Цитата:
Мне кажется http- авторизация более защищена в том плане, что сервер настраивают продвинутые администраторы

Ну если честно, слово продвинутый не совсем уместно в моем случае... Будем так говорить их на сервере нет в принципе... Полный автомат, так сказать...
Темпаче, что ЭТО И ЕСТЬ http авторизация. Улыбка http авторизация работает на стороне броузера. (Header ("HTTP/1.0 401 Unauthorized");)
Если же вы имеете в виду авторизацию методами "апатча" то должен вас растроить, у нас им и не пахнет. И пахнуть по соображениям нагрузки не будет. Улыбка

 

Powered by ExBB FM 1.0 RC1