Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Насколько такая защита для админик безопасна
 
 автор: TanTaL91   (28.11.2008 в 19:51)   письмо автору
 
 

Насколько такая защита для админик безопасна

Пароль записан в конфиг.

При попытки войти в админку он выдает окно для ввода пароля, если пароль введен он запускает если нет, то выдает форму для входа.

require_once ("config.php");

echo "<head>
if (!isset($_GET['pswrd']) or $_GET['pswrd'] !="$password") 

{

echo "
<center>
<table border=1 cellspacing=0 cellpadding=0 width=50% height=100% bgcolor=#5a98e1>
<tr bgcolor=#ebe9ed height=130><td><center><h2>Панель для администраторов</h2></center></td></tr>
<tr>
<td>
<center>
<table border=1 cellspacing=0 cellpadding=40 bgcolor=#ebe9ed>
<tr>
<td>
<form action='index.php' method='get' name=pass>
<center>Пароль: <input type=password name=pswrd size='28'> <br><br><br>
<center><input type='submit' value='Войти в панель администрирования'>
</form><br><br>
<a href='../'>На главную доску</a>
</td>
</tr>
</table>
</center>
</td>
</tr>
</table>
</center>";
}
else 
{
if ($_GET['pswrd']=="$password") 
{
}

  Ответить  
 
 автор: bronenos   (28.11.2008 в 20:53)   письмо автору
 
   для: TanTaL91   (28.11.2008 в 19:51)
 

скобки можно убрать
"$password"

и
else { if { } } равнозначно elseif { }

  Ответить  
 
 автор: TanTaL91   (28.11.2008 в 20:55)   письмо автору
 
   для: bronenos   (28.11.2008 в 20:53)
 

Я хотел бы узнать про надежность такой защиты...

  Ответить  
 
 автор: Николай2357   (28.11.2008 в 21:11)   письмо автору
 
   для: TanTaL91   (28.11.2008 в 20:55)
 

Вот:
<?
  
if(empty($_SERVER['PHP_AUTH_USER'])) 
  { 
    
Header("WWW-Authenticate: Basic realm=\"Control Page\""); 
    
Header("HTTP/1.0 401 Unauthorized"); 
    exit(); 
  } 

    if(
$_SERVER['PHP_AUTH_PW'] != $login || $_SERVER['PHP_AUTH_USER'] != $password)
    {
      
Header("WWW-Authenticate: Basic realm=\"Control Page\""); 
      
Header("HTTP/1.0 401 Unauthorized"); 
      exit(); 
    }

  Ответить  
 
 автор: BinLaden   (28.11.2008 в 21:17)   письмо автору
 
   для: Николай2357   (28.11.2008 в 21:11)
 

И причём тут это?

  Ответить  
 
 автор: TanTaL91   (28.11.2008 в 21:21)   письмо автору
 
   для: BinLaden   (28.11.2008 в 21:17)
 

Суть в чем... Вообщем надо написать не пробиваемую защиту для админки. Пароль будет храниться в конфиге или в каком то отдельном файле.

Как это так сделать что бы было на все 100%

  Ответить  
 
 автор: xx77   (28.11.2008 в 22:03)   письмо автору
 
   для: TanTaL91   (28.11.2008 в 21:21)
 

Это можно назвать защитой только если дальше к каждой форме, ссылке в адрес добавляется &pswrd=12345,
и на каждой странице администрирования снова так-же проверяется
, и одно только это не гарантирует, что в другом месте не найдётся дыра, и не считают этот файл
( плохо тем , что иногда всё-таки забывается выключать указание источника перехода,
и часто нужно переходить ещё из админки на разные сайты,
где некоторым неленивым админам , можно будет подсмотреть ваш Referer с паролем
)
а так , это только отправка и обработка формы

  Ответить  
 
 автор: Николай2357   (29.11.2008 в 01:19)   письмо автору
 
   для: TanTaL91   (28.11.2008 в 21:21)
 

Что бы гарантировано защититься от взлома, нужно выключить сервер и закопать его на трех метровую глубину. И то, это не 100% гарантия. А так, если не нужен логин, имхо, вполне достаточно того, что написано, только я бы переписал нижнюю часть как то так:
<? 

elseif ($_GET['pswrd']!==$password
{
exit(
"Фиг вам.  <a href='?' >Попробуем еще?</a>");
}
else
{

  Ответить  
 
 автор: AcidTrash   (29.11.2008 в 01:29)   письмо автору
 
   для: Николай2357   (29.11.2008 в 01:19)
 

>и закопать его на трех метровую глубину
Не, сейчас если не ошибаюсь глубина поменьше.

  Ответить  
 
 автор: Николай2357   (29.11.2008 в 01:22)   письмо автору
 
   для: BinLaden   (28.11.2008 в 21:17)
 

Просто в аське код не видно ::))

  Ответить  
 
 автор: mihdan   (29.11.2008 в 14:24)   письмо автору
 
   для: Николай2357   (28.11.2008 в 21:11)
 

При Basic-авторизации любой пароль передается в открытом виде без шифрования. Самый простой снифер - ваш пароль у злодея в кармане.

  Ответить  
 
 автор: cheops   (29.11.2008 в 14:39)   письмо автору
 
   для: mihdan   (29.11.2008 в 14:24)
 

При любом методе пароль передается без шифрования. Трафик шифруется при помощи SSL, который можно применять совместно с Basic-авторизацией.

  Ответить  
 
 автор: TanTaL91   (30.11.2008 в 12:25)   письмо автору
 
   для: cheops   (29.11.2008 в 14:39)
 

А как можно зашифровать пароль?

  Ответить  
 
 автор: Aidaho   (01.12.2008 в 12:04)   письмо автору
 
   для: TanTaL91   (30.11.2008 в 12:25)
 

Использовать SSL :)

  Ответить  
 
 автор: TanTaL91   (02.12.2008 в 19:20)   письмо автору
 
   для: Aidaho   (01.12.2008 в 12:04)
 

а пример в студию моно ? :)

  Ответить  
 
 автор: Maxam   (03.12.2008 в 23:42)   письмо автору
 
   для: TanTaL91   (02.12.2008 в 19:20)
 

Да, было бы интересно...

  Ответить  
 
 автор: Aidaho   (04.12.2008 в 11:21)   письмо автору
 
   для: Maxam   (03.12.2008 в 23:42)
 

ставим к апачу mod_ssl переконфигуриваем апач и заходим https://bla bla... вот и все :)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования