Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CGI. Как узнать, можно ли посадить куки, или заголовки уже на клиенте 
:(
    Опции темы
Marlik
Дата 2.3.2007, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



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

А вот меня вопрос интересует: 

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

Теперь вопрос, можно-ли с куками так-же извращатся? И если они стерлись, как удостоверится что юзер тот-же самый, не спрашивая пароль?
PM WWW Skype   Вверх
nitr
Дата 2.3.2007, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Marlik, а зачем стирать? Если сам чел хотел более не вводить пароль, он и поставил "галочку" - "Запомнить меня". smile


--------------------
PM   Вверх
Marlik
Дата 4.3.2007, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Вот проблемма-то, куки кладу а прочитать не получается, у кого есть правильный вариант в одну две строчки? Где-то ошибаюсь и не знаю где.  smile   Спасибо. 
PM WWW Skype   Вверх
Nab
Дата 4.3.2007, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вот так у меня формируется уникальный номер сессии, и время жизни 10 минут:
Код

$query = CGI->new;
my $session_id = md5_hex($query->remote_addr, time, rand(42));
print $query->header(-cookie => $query->cookie(-name => 'session', -value => $session_id, -expires => '+10m'));

# а дальше уже можно выводить тело документа...


Следующий код к делу не относиться, но так я сохраняю инфу в сессии, 
хотя и рекомендую использовать CGI::Session...
Просто эта реализация у меня есть простой метод аутентификации админа, 
поэтому админская сессия только одна , и в потомках будет переопределена.
Но уже в базовом ядре моей разработки есть минимальная, весьма надежная аутентификация, 
что меня на начальном этапе более чем устраивает...
Правда полная схема немного сложнее, но не об этом речь smile
Код

my $admin_session = {
        host        => $remote_addr,
        session_id    => $session_id
        expires        => time + (10 * 60),
    };
$config->param('admin_session', $admin_session);


а получаю так:
Код

$query = CGI->new;
my $session_id = $query->cookie(-name => 'session');

# дальше идут проверки с сохраненной инфой...
my $admin_session = $config->param('admin_session');
...


Кстати по поводу получения, возникла проблема с Opera, не всегда при переходе с другого домена кука воспринимается, просто ссылка для входа отсылается на мыло, и если юзают web-mail, то при нажатии в письме на ссылке в gmail к примеру , кука не доходила smile и это я заметил еще на нескольких сайтах, правда потом простым обновлением страницы это исправляется, но такой нюанс есть... в IE все норм smile

PS: А работу напрямую с куками, без CGI.pm можно поглядеть на примере реализации альтернативного модуля, форумчанином BlackLFL http://forum.vingrad.ru/topic-83358.html

Это сообщение отредактировал(а) Nab - 4.3.2007, 18:57


--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
Marlik
Дата 6.3.2007, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Да, отлично, все работает, но есть один вопрос: вот посмотрел куки и обнаружил что у некоторых кук есть имя, а вот у других только значения которые положил админ, и я вот подумал а что если положить куку но не указать имя, и к примеру указать домен, получиться-ли что только с определенного домена эту куку можно прочитать, или это все предположения и я ошибаюсь???

Как такую куку кладут, без имени? 
PM WWW Skype   Вверх
Nab
Дата 7.3.2007, 02:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



На счет пустого имени вот что скажу, проверил на таком скрипте:
Код

print "Set-Cookie: ddd=zzzzzzzzzzzzzzzzzzzzzzzzzzz;Path=/;Expires=".scalar localtime(time + 3600)."\n";
print "Set-Cookie: =xxxxxxxxxxxyyyyyyyyyyyyyyyyzzzzzzzzzzz;Path=/;Expires=".scalar localtime(time + 3600)."\n";
print "Content-type: text/html\n";
print "\n";


foreach ( split( /;\s*/, $ENV{'HTTP_COOKIE'} ) ) { print "$_<br />"}
print "Ok\n";


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

Так вот пустую куку воспринял у меня только IE, Opera такую фигню не захотела воспринимать.
У друга ФФ тоже воспринял пустую smile
Так что вот обнаружился еще один способ проверки клиента, и определения каким броузером к нам зашли smile


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



--------------------
 Чтобы правильно задать вопрос нужно знать больше половины ответа...
Perl Community 
FREESCO in Ukraine 
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

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


 




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


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

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