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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Авторизация, оценка 
:(
    Опции темы
sOckets
Дата 29.9.2006, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


ЖгуПоПонедельникам
**


Профиль
Группа: Участник
Сообщений: 298
Регистрация: 24.8.2006
Где: ws2.lib

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



Скорее всего smile Только что покушал.....пакемарить бы..... smile 


--------------------
Я Будущий сотрудник Google Inc. Юзаем Google Code Search для поиска исходников. Юзаем GMail как почту.
PM   Вверх
Vaulter
Дата 29.9.2006, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Gold Dragon, дело не в подборе
дело в перехвате куков.
если в куках хранится пароль и id - то перехват приведет к тому что стороний человек получит доступ до смены пароля.
если в куках хранится сессия и id - то перехват приведет к тому, что у стороний человек получит доступ на время жизни сессии.



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


Шустрый
*


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

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



6 символьный пароль подбереться за пару часов на сильной машине. Если нужно запоминать пользователя, то можно хранить и в куках.
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 29.9.2006, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



Цитата(Vaulter @  29.9.2006,  13:22 Найти цитируемый пост)
если в куках хранится сессия и id - то перехват приведет к тому, что у стороний человек получит доступ на время жизни сессии.
Убедил smile

тогда вопрос.. Как мне в моём коде использовать сессии? То есть что и где поменять?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Garret
Дата 29.9.2006, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Gold Dragon @  29.9.2006,  18:42 Найти цитируемый пост)
Убедил smile
Что значит убедил? А если пользователь не хочет вводить каждый раз данные? smile 
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 29.9.2006, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



что значет не хочет... не уже ли трудно ввести логин и пароль? На mail.ru заходят, вводят и ничего страшного smile

Добавлено @ 19:25 

ну так как предусмотреть сессии?


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
SamDark
Дата 3.10.2006, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


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

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



Сессию тоже можно перехватить. Даже если это произошло, можно защититься: запомнить при входе ip и сверять его в процессе работы скрипта.


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
Gold Dragon
Дата 16.10.2006, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



народ, помогите разобраться с логикой. Пытаюсь в этот скрипт засунуть работу с сессиями, но не получается.

Допустим юзер ввёл пароль и логин. Данные ушли на обработку. Сверились с данными в базе - всё в порядке.
До этого я просто записывал в куки пароль и логин с маленькой жизнью. А как мне работать с Сессиями?
Т.е. в место того, чтобы записывать в куки пароль, я должен стартовать сессию и записать значение session_id и потом всегда её проверять, так?

по моему что то я не то делаюsmile


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 16.10.2006, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Ну в сессию нужно писать ID и логин пользователя например, и в функции проверки авторизации при каждом переходе пробивать их достоверность. Если хочешь, чтоб был типа автовход, то в куку также можно писать ID и логин.
ЗЫ. Что то не могу уловить твою проблему.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Gold Dragon
Дата 16.10.2006, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



да проблемы нет... просто народ сказал что хранить в куках пароль не очень надёжно.. Вот я подумал-подумал и решил чуть переделать код


вот что получилось, но чувствую что навертел что-то сложно и не правильно, посмотрите плизз

страница с формой
Код

<?php

if(isset($_POST['ok'])){
// полечение данных из формы
    $log = (isset($_POST['log'])) ? md5($_POST['log']) : '';
    $pas = (isset($_POST['pas'])) ? md5($_POST['pas']) : '';

    // получение пароля и логина из базы
    $z = "SELECT `log_md`,`pas_md`,`id`* FROM `admin` WHERE `log_md`='".$log."' AND `pas_md`='".$pas."'";
    $r = mysql_query($z);

    // если пароль и логин верны и существуют в базе то..
    if (mysql_num_rows($r)>0){
        $f = mysql_fetch_array($r);
        $vr = 60*5; // время жизни кука
        session_start();
        setcookie ("aut", '1', time()+$vr);
        setcookie ("log", $f['log_md'], time()+$vr);
        setcookie ("pas", session_id(), time()+$vr);
        setcookie ("id_kabak", $f['id_kabak'], time()+$vr);
        $_SESSION['pas'] = $pas;
        // переход на страницу администрирования
        header("Location: http://".$_SERVER['HTTP_HOST']."/index.php?pages=admin");
        exit;
    // если такого нет, то переход на страницу ошибки
    }else{
    unset($_SESSION);
        header("Location: http://".$_SERVER['HTTP_HOST']."/index.php?pages=message&id_m=4");
        exit;
    }
// если данных их формы нет,выводформы
}else{
    $content = s_restorat_content();
    echo $content;
}

function s_restorat_content(){
return <<<EOF
<div>
<table width="100%" align="center" border="0">
    <tr class="txt8">
        <td class="btr">
<p align="center"><form name="ok" action="" method="post">
<b>Вход</b><br>имя: <input name="log" type="text" value=""> пароль: <input name="pas" type="text" value="">
<input type="submit" value="OK" name="ok">
</form>
</div>
EOF;
}
?>


страница администрирования, куда осуществляется переход
Код

<?php
session_start();
$vr = 60*5; // время жизни кука

if (isset($_COOKIE['aut'])) {
    // проверка кука и базы
    $id = (isset($_COOKIE['id'])) ? ($_COOKIE['id']) : '';
    $log = (isset($_COOKIE['log'])) ? ($_COOKIE['log']) : '';
    $pas = (isset($_SESSION['pas'])) ? ($_SESSION['pas']) : '';
    $pasSes = (isset($_COOKIE['pas'])) ? ($_COOKIE['pas']) : '';
    $z = "SELECT * FROM `admin` WHERE `log_md`='".$log."' AND `pas_md`='".$pas."' AND `id`='".$id."'";
    $r = mysql_query($z);
    if ((mysql_num_rows($r)>0) AND ($pasSes = session_id())){
        //********************************************************************
        // начало основного поля администрирования
        setcookie ("aut", '1', time()+$vr);
        setcookie ("log", $log, time()+$vr);
        setcookie ("pas", $pasSes, time()+$vr);
        setcookie ("id",$id, time()+$vr);

                // необходимый код
                $content = "всё ОК";

        // конец основного поля администрирования
        //********************************************************************

    // если что-то не совпадает, то удаляем куки
    }else{
        setcookie ("aut", '', time()-60);
        setcookie ("log", '', time()-60);
        setcookie ("pas", '', time()-60);
        setcookie ("id", '', time()-60);
        unset($_SESSION);
       // и переходим на страницу ошибки (несанкционированный доступ)
        header("Location: http://".$_SERVER['HTTP_HOST']."/index.php?pages=message&id_m=5");
        exit;
    }
// если кук умер или его нет
}else {
        header("Location: http://".$_SERVER['HTTP_HOST']."/index.php?pages=restorat");
        exit;
}

echo $content;
?>



--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Gold Dragon
Дата 18.10.2006, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



ау... smile 


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 19.10.2006, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Gold Dragon, опять жишь, где mysql_escape_stirng() ?! И еще, у тебя тут судя по всему автовхода нет, я правильно понял?!


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Gold Dragon
Дата 20.10.2006, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

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



про mysql_escape_stirng() забыл smile

Автовхода не будет.. 

А как насчет кода? Что-то по моему не то... Посмотрите пожалуйста.


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 20.10.2006, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Gold Dragon, впринципе то все ништяк, только мне вот не понятно одно, зачем хеш от паса хранить в сессии, а остальные данные в куках. Поясни причину такого разделения, ИМХО, я бы все держал в сессиях, зачем пользователю видеть лишнюю информацию (об авторизации) у себя на тачке?! Но это ИМХО, а так... придраться вроде не к чему ;)


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
BrutalizedProgrammer
Дата 25.11.2006, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(ZlojEzh @ 28.9.2006,  09:12)
...иначе злобный хацкер может похитить кукисы у пользователя, установить их себе и поставить неограниченное время жизни...

а как он их похитит?... (это не сарказм, мне реально интересно... как? Я просто сам тут ставил в куки пароль smile )
а вот теперь наткнулся на эту тему и очень заинтересовался...
PM MAIL ICQ   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0834 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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