Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как защитить админку 
V
    Опции темы
mustafallah
Дата 13.12.2008, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 18.3.2008

Репутация: 1
Всего: 1



Здравствуйте!
Как лучше защитить раздел админки средствами PHP?
PM MAIL   Вверх
NLspieler
Дата 13.12.2008, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: 16
Всего: 19



Поставь авторизацию через сложный пароль и логин.
PM MAIL   Вверх
mustafallah
Дата 13.12.2008, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 18.3.2008

Репутация: 1
Всего: 1



Ну это понятно, а как организовать эту авторизацию... я не знаю.
PM MAIL   Вверх
VitaL
Дата 13.12.2008, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 24.6.2006

Репутация: нет
Всего: нет



Код

<?php
  if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Текст, отправляемый в том случае,
    если пользователь нажал кнопку Cancel';
    exit;
  } else {
    echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>Вы ввели пароль {$_SERVER['PHP_AUTH_PW']}.</p>";
  }
?>



см тут
PM MAIL WWW Skype   Вверх
NLspieler
Дата 13.12.2008, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: 16
Всего: 19



Я бы попробовал сделать так. 

Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Админка</title>
</head>

<body>
<?php
if ($_POST['login']=='admin' and $_POST['pass']=='passofadmin') #Если ввели правильный пароль и логин.
{

    include ('adminka.inc') ;  #Загрузка файла с админкой. 
}
else #Иначе вывести форму.
{
    echo '<td><form method="POST">' ,"\n";
    echo   '<p align="left">',"\n";
    echo   'Логин:',"\n";  
    echo     '<input type="text"   name="login" size="50" class="text" maxlength="100" value="" /> ',"\n";
    echo     '<br /><br />'  ,"\n";
    echo     'Пароль: <input type="password" name="pass" size="50" class="text" maxlength="100" value="" >',"\n";
    echo     '<br /><br />',"\n";
    echo     '<input type="submit" name="submit" value="Вход" />',"\n";
    echo    '</p>',"\n";
    echo    '</form>' ,"\n";
    
    if ($_POST['submit']=='Вход') #И если кнопку нажимали, то сказать о неправильности пароля.
    {
        echo     '<br /><br />'  ,"\n";
        echo     'Неправильный логин или пароль!'  ,"\n";    
    }
} 
?>

</body>
</html>


PM MAIL   Вверх
krundetz
Дата 14.12.2008, 01:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



mustafallah, при работе в админке перед выполнением какого либо скрипта проверяется состояние сесии где храниться указатель на то может ли пользователь работать в админке или нет, если указатель false вместо запрошеного скрипта выполняется скрипт предлогающий сначала авторизоваться, если указатель true то скрипт выполняется в полном обьеме. Прежде чем проверять указатель на состояние необходимо проверить его на сушествование, если его не сушествует мы его создаем и присваеваем ему значение по умолчанию false. Скрипт предлогающий авторизоваться пользователю передает пароль и логин на сервер, где они проверяются на принадлежность администратору. Если проверка прошла успешно то указатель в сесии переводим в состояние true, если не соответствуют выводим сообщение об этом. Вот в крадце самый простой способ защиты админки


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
gta4kv
Дата 14.12.2008, 10:51 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



А круче нарисовать картинку и сделать авторизацию по ней smile
PM MAIL   Вверх
mustafallah
Дата 14.12.2008, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 18.3.2008

Репутация: 1
Всего: 1



Спасибо всем за ответы, буду пробовать.

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

Сделал по примеру NLspieler.
Код

<?php
if ($_POST['login']=='admin' and $_POST['pass']=='passofadmin') #Если ввели правильный пароль и логин.
{
    echo "ok"; 
}
else #Иначе вывести форму.
{
    echo '<td><form method="POST">' ,"\n";
    echo   '<p align="left">',"\n";
    echo   'Логин:',"\n";  
    echo     '<input type="text"   name="login" size="50" class="text" maxlength="100" value="" /> ',"\n";
    echo     '<br /><br />'  ,"\n";
    echo     'Пароль: <input type="password" name="pass" size="50" class="text" maxlength="100" value="" >',"\n";
    echo     '<br /><br />',"\n";
    echo     '<input type="submit" name="submit" value="Вход" />',"\n";
    echo    '</p>',"\n";
    echo    '</form>' ,"\n";
        
    if ($_POST['submit']=='Вход') #И если кнопку нажимали, то сказать о неправильности пароля.
    {
        echo     '<br /><br />'  ,"\n";
        echo     'Неправильный логин или пароль!'  ,"\n";    
    }
    die;
} 
?>

Если пасс верный то ок страница грузится дальше, если нет то умирает.
С сессиями не дружу надо на досуге как нибудь почитать и сделать нормальную защиту.
В принципе вопрос решен, тему можно закрывать.
Всем огромное спасибо за помощь!
PM MAIL   Вверх
gibbzy
Дата 14.12.2008, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 97
Регистрация: 25.1.2008

Репутация: нет
Всего: 3



ещё можно htaccess`ом 

Код

AuthType Basic
AuthName 'garden-club.ru admin panel'
AuthUserFile /физический путь /.htpasswd
Require valid-user


файл  .htpasswd
Код

login:pass

PM MAIL WWW ICQ   Вверх
krundetz
Дата 16.12.2008, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Цитата(gta4kv @  14.12.2008,  10:51 Найти цитируемый пост)
А круче нарисовать картинку и сделать авторизацию по ней smile 

тоесть?


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
NLspieler
Дата 16.12.2008, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 619
Регистрация: 13.10.2008
Где: Берлин

Репутация: 16
Всего: 19



Цитата(krundetz @  16.12.2008,  13:11 Найти цитируемый пост)
тоесть?


Он имел в виду капчу.
Т.е. кроме пароля и логина нужно вводить еще и проверочный код с картинки. 
Зачем это нужно, спросят некоторые, все дело в том, что таким образом обеспечивается защита от подбора пароля.
Так же, это помогает защититься от автоматических регистраций и много другого. 

PM MAIL   Вверх
gta4kv
Дата 16.12.2008, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



я не имел в виду капчу.
Я имел в виду что просто сравнивать контент картинок, если совпадает то - вошел.

Это сообщение отредактировал(а) gta4kv - 16.12.2008, 17:24
PM MAIL   Вверх
krundetz
Дата 17.12.2008, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



gta4kv, тоесть хешировать картинку?

Где-то слышал про следующий способ авторизации, на экране выводится в случайном порядке  група картинок, юзеру чтобы авторизоваться необходимо описать мышкой как можно более точную оласть, в которую входят три картинки которые он выбрал. Интересно какой механизм лежит внутри может кто знает?


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
MoLeX
Дата 17.12.2008, 07:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



как альтернатива защиты:

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

изврат уже пошел 


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
gta4kv
Дата 17.12.2008, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



krundetz,
что-то типа:
Код

$hash = md5( file_get_contents( 'mysecurimage.png' ) );
$file_hash = md5( file_get_contents( $_FILES[ 'image' ][ 'tmp_file' ] ) );
if( $file_hash == $hash ) 
{
     // .....
}
else
{
     // invalid
}


рисунок какой нибудь сделать 10х10, в фотошопе просто квадратным карандашом наставить десять разноцветных клякс smile

Это сообщение отредактировал(а) gta4kv - 17.12.2008, 09:56
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.