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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Безопасен ли такой способ авторизации? 
:(
    Опции темы
Elfet
Дата 25.2.2008, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



Безопасен ли такой способ авторизации?
Код

<?php
define( 'ROOT_PATH'  , "../" );

include_once("../kernel/kernel.php"); 
include_once("moderatorclass.php"); // класс управленец
include_once("moderators.php"); // список модераторов

$kernel->db->connect();

$moderator = new moderatorclass($moderators);
$moderator->kernel = & $kernel;

session_name('moderator');
session_start();

Header('Content-Type: text/html; charset=utf-8');


// Выполняем вход.
if(isset($_POST['user']) && isset($_POST['password']))
{
    $_SESSION['moder'] = $_POST['user'];
        // Используем пароль, дату и IP для образования хеша
    $_SESSION['hash'] = sha1( sha1($_POST['password']) . sha1(date('YmdH')) . sha1($kernel->session->IPDetect()) );
}

$moderator->Header('Модерирование');

if(isset($_SESSION['moder']) && isset($_SESSION['hash'])
  && sha1( $moderator->moderators[$_SESSION['moder']] . sha1(date('YmdH')) . sha1($kernel->session->IPDetect()) ) == $_SESSION['hash'])
{
       // Удачно вошли 

        // Выход...
    if(isset($_GET['tab']) && $_GET['tab'] == 'exit')session_destroy();

    $moderator->Menu($_GET['tab']);

    switch ($_GET['tab'])
    {
        case 'exit':
            echo "<td class='text'><h1>Вы вышли.</h1></td>";
            break;

        case 'ban':
            $moderator->ban();
            break;

        case 'msg':
            $moderator->msg();
            break;

        default:
            $moderator->online();
    }
}
else
{
       // Вход не был выполнен или был выполнен неправильно.
    session_destroy();
?>
    <td class="text" valign="top">  
    <h1>Вход</h1>
    <form method="POST" action="index.php"> 
    <table>
    <tr><td>Модеротор:</td><td><input type="text" name="user" value="<?=$_POST['user']?>"></td></tr>
    <tr><td>Пароль:</td><td><input type="password" name="password"></td></tr>
    <tr><td>&nbsp;<small>Тайм-аут каждый час.</small></td><td align="right"><input type="submit" value="Вход"></td></tr>
    </table>
    </form>
    </td>    
<?
}

$moderator->Footer();

$kernel->db->close();
?>

Заранее спасибо!  smile 

Это сообщение отредактировал(а) Elfet - 25.2.2008, 15:12


--------------------
PM MAIL WWW Skype   Вверх
gta4kv
Дата 25.2.2008, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


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

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



Elfet, это же сессия, че тут может быть не безопасно? о_О

пс. 
Код

$moderator->kernel = & $kernel;


Нафига &? Или у вас PHP4?
PM MAIL   Вверх
Elfet
Дата 25.2.2008, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



gta4kv, хочу что бы и там ещё работало smile
А сессию - вдруг с ворует кто?  smile 


--------------------
PM MAIL WWW Skype   Вверх
gta4kv
Дата 25.2.2008, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


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

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



Elfet, йа почемуто сомневаюсь насчет с воруют.

Цитата

хочу что бы и там ещё работало

Ну вообще работать и так будет, просто вместо объекта будет передаваться ссылка. но вообщем то пофиг )не суть важно.
PM MAIL   Вверх
zibox86
Дата 25.2.2008, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я бы еще проверил значения логина и пароля функцией empty!

Так как isset проверяет на существование переменной, а empty на пустоту этой переменной!

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


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



zibox86,  smile как же я забыл! smile


--------------------
PM MAIL WWW Skype   Вверх
GeneralElectric
Дата 25.2.2008, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Elfet, а можно поинтересоваться содержимым функции $kernel->session->IPDetect()?
Есть у меня большое подозрение, что она позволяет, украв сессию, получить беспрепятственный доступ к ней.

Добавлено через 3 минуты и 10 секунд
zibox86, а в чем смысл empty в данном случае? Ну будут логин с паролем пустыми - и что?
PM MAIL   Вверх
Elfet
Дата 25.2.2008, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



GeneralElectric, Вот: http://forum.vingrad.ru/index.php?showtopi...t&p=1118249 
И каким же это образом? smile


--------------------
PM MAIL WWW Skype   Вверх
GeneralElectric
Дата 25.2.2008, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Позорище какое. И это тут считается эталоном определения IP адреса?
И там огромными буквами, 20 шрифтом не написано, что использовать эту функцию можно только а сочетании с REMOTE_ADDR, а не вместо?

Цитата(Elfet @  25.2.2008,  18:51 Найти цитируемый пост)
И каким же это образом?

самым обычным.
PM MAIL   Вверх
Elfet
Дата 25.2.2008, 20:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



GeneralElectric, это поиск по форуму мне выдал. Мне без разницы как определять IP. Главное что бы определить. Как?
Цитата(GeneralElectric @  25.2.2008,  20:06 Найти цитируемый пост)
самым обычным. 

Поделись каким? smile


--------------------
PM MAIL WWW Skype   Вверх
GeneralElectric
Дата 25.2.2008, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Elfet @  25.2.2008,  20:07 Найти цитируемый пост)
 Главное, чтобы определить. Как?

Код

$ip=$_SERVER['REMOTE_ADDR'];

PM MAIL   Вверх
Elfet
  Дата 25.2.2008, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



GeneralElectric, супер smile Буду знать)))) Тобишь функция такая извратная вовсе не нужна?


--------------------
PM MAIL WWW Skype   Вверх
GeneralElectric
Дата 25.2.2008, 20:33 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



нельзя сказать, что она совсем не нужна. Можно её пользоваться. Но надо понимать две вещи
1. что с её помощью злоумышленник легко подделает адрес.
2. следовательно, применять её следует с осторожностью, в каждом конкретном случае - по разному. 

Для случаев контроля сессии, подобных твоим, функция должна выдавать масив. Не один адрес,а массив. из всех найденных адресов.
этот массив можно сериализовать и использовать в хэше.
PM MAIL   Вверх
CyClon
Дата 25.2.2008, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Для полного смака сделай привязку сессии/хеша к IP.

Это сообщение отредактировал(а) CyClon - 25.2.2008, 21:51


--------------------
user posted image
PM   Вверх
Elfet
Дата 25.2.2008, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

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



CyClon, а у меня разве нет такой привязки? smile
GeneralElectric,  smile 


--------------------
PM MAIL WWW Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0736 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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