Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.03;
Скачать: CL | DM;

Вниз

Хранение сессии в кукисах   Найти похожие ветки 

 
БарЛог ©   (2008-06-19 11:34) [0]

Всем привет. Всё тот же интернет-магазин :)
Делаю "Залогинивание". Что хранить в кукисах?
Логин - по-любому (если зарегистрированный). Пароль - небезопасно.

Как тогда скрипту определить, что логин в кукисах не вбит руками?


 
McSimm ©   (2008-06-19 11:36) [1]


> Что хранить в кукисах?

уникальный идентификатор, по которому на сервере можно найти сессионную информацию


 
McSimm ©   (2008-06-19 11:38) [2]


> Как тогда скрипту определить, что логин в кукисах не вбит
> руками?

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


 
Сергей_77   (2008-06-19 11:39) [3]

а в сессии еще сравнивать не изменилось ли IP  с момента логина .. (дабы исключить возможность перехвата ID  сессии)


 
McSimm ©   (2008-06-19 11:41) [4]

IP часто меняется "на законных основаниях".


 
БарЛог ©   (2008-06-19 11:42) [5]

Ну а сколько тогда этой сессии жить?
Вот я, например, зашёл на делфимастер (кстати, там хранится логин и идентификатор, как я понял), закрыл его, зашел через неделю - сессия сохранилась! Нет?


 
Тын-Дын ©   (2008-06-19 11:44) [6]


> БарЛог ©   (19.06.08 11:42) [5]
> Ну а сколько тогда этой сессии жить?

В зависимости от задачи.


 
Сергей_77   (2008-06-19 11:45) [7]


> IP часто меняется "на законных основаниях".

в пределах 1-ной сессии?  очень маловероятно, это тока если пользователь постоянно переподключается на разных прокси или динамическое IP- но тоже меняется при переподключениях тока.

Хотя на многих современных почтовых сервисах есть возможность включать контроль IP в пределах 1 сессии или нет ..

Имхо включать обязательно, иначе любой банальный  javascript  может  украсть ID  сессии или даже все куки . ...


 
Сергей_77   (2008-06-19 11:46) [8]


> Ну а сколько тогда этой сессии жить?

имхо 1 час достаточно


 
Ega23 ©   (2008-06-19 11:47) [9]


> Ну а сколько тогда этой сессии жить?


В PHP - 24 минуты. Можно настроить.
У нас идея (но это с AJAX) - раз в минуту HandShake выдавать со стороны браузера. Тогда действительно можно довольно быстро неиспользуемые сессии прибивать.


 
McSimm ©   (2008-06-19 11:48) [10]

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

Время жизни сессии определяется исключительно личным пожеланием разработчика или заказчика. Можно делать как Ozon.ru - "помнить" клиента всегда, но через определенное время неактивности снимать признак авторизованности (требовать авторизацию для критичных действий).


 
McSimm ©   (2008-06-19 11:51) [11]


> > IP часто меняется "на законных основаниях".
> в пределах 1-ной сессии?

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


 
Плохиш ©   (2008-06-19 11:56) [12]


> Ну а сколько тогда этой сессии жить?

Пока браузер не закроют, это для сессии. Закрыл браузер, открыл, изволь мил человек снова ввести пароль.
Но так как речь идёт про "интернет-магазин", то там вроде важна толька корзина заказов, а вот её хранить на сервере с привязкой к пользователю, для зарегестрированных и идентификатор в кукисах - для незарегестрированных.
Вполне удобно, заходишь на сайт через неделю, а тебе показывают, что ты здесь уже что-то выбирал...


 
БарЛог ©   (2008-06-19 11:59) [13]

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

Хотелось бы этого избежать. В озоне не надо каждый раз вводить.


 
Ega23 ©   (2008-06-19 11:59) [14]


> Закрыл браузер, открыл, изволь мил человек снова ввести
> пароль.


И как сервер узнает, что ты закрыл браузер?


 
БарЛог ©   (2008-06-19 12:03) [15]

> И как сервер узнает, что ты закрыл браузер?

setcookie("qqq", $var);
Сохраняет пока не закрыл браузер.


 
Ega23 ©   (2008-06-19 12:05) [16]


> setcookie("qqq", $var);
> Сохраняет пока не закрыл браузер.
>


куку записал, а потос ручками в GET ввёл. А сессия на сервере - ещё жива...


 
Плохиш ©   (2008-06-19 12:06) [17]


> Ega23 ©   (19.06.08 11:59) [14]

Кукисы с временем жизни сессии, закрыл браузер - кукисы стёрлись
Expires := -1;


 
Ega23 ©   (2008-06-19 12:11) [18]


> Кукисы с временем жизни сессии, закрыл браузер - кукисы
> стёрлись
> Expires := -1;


На БУМАЖКУ куку записал.


 
Сергей_77   (2008-06-19 12:11) [19]

setcookie("qqq", $var,time()+24*60*60*333,"/")
кука на год))


 
БарЛог ©   (2008-06-19 12:13) [20]

> Кукисы с временем жизни сессии, закрыл браузер - кукисы стёрлись
> Expires := -1;

Ну это жёстко :) Хотя куки можно украсть, пока браузер открыт. Тем же джава-скриптом или трояном.


 
БарЛог ©   (2008-06-19 12:14) [21]

Сергей_77   (19.06.08 12:11) [19]
Вот интересно, как удаляются куки, когда срок истекает?
Удаляются при запуске эксплорера? Или при обращении к сайту, от которого куки?


 
b z   (2008-06-19 12:15) [22]

Корзину хранить в сессии, сессию в базе, с настрорйкой таймаутов и т.д.


 
McSimm ©   (2008-06-19 12:15) [23]


> Ega23 ©   (19.06.08 12:11) [18]

Можно куку записать на бумажку и потом вставить. И что ?
Это ж ты записал. Не хочешь, не записывай.

С тем же успехом можно просто не закрывать браузер


 
Сергей_77   (2008-06-19 12:18) [24]


> Удаляются при запуске эксплорера? Или при обращении к сайту,
>  от которого куки?

непользуюсь эксплорером практически поэтому немогу сказать(

Зато в опере есть классная настройка "чистить куки при выходе" очень удобно против всяких спайлогов и прочих трекеров


 
McSimm ©   (2008-06-19 12:19) [25]


> Вот интересно, как удаляются куки, когда срок истекает?

браузер перестает их отправлять.


 
McSimm ©   (2008-06-19 12:21) [26]


> очень удобно против всяких спайлогов и прочих трекеров

Ерунда это. Каких например ?

Эта настройка для параноиков. Чтобы посторонний не подсмотрел в ваше отсутствие.


 
Сергей_77   (2008-06-19 12:30) [27]


> Ерунда это. Каких например ?

Хотлог, спайлог да и много счётчиков, которых сейчас понаделали повсюду

и еще очень помогает бороться с разными "партнёрскими программами" которые основаны на кукисах :)


 
McSimm ©   (2008-06-19 12:34) [28]


> Сергей_77   (19.06.08 12:30) [27]

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


 
McSimm ©   (2008-06-19 12:36) [29]

если я захожу на delphimaster.ru, то никакие куки кроме delphimaster.ru записаны не будут и никому кроме delphimaster.ru не будут переданы.

зачем же мучить себя ?


 
БарЛог ©   (2008-06-19 13:09) [30]

Только что посмотрел на Озоне.
Сохраняется Session_ID и, если залогинился, Session_ID и Client_ID.
Время жизни у них (сессий), вроде бы, вечно (то есть, если я зайду через неделю, то буду автоматически залогинен).
Так нормально будет? Или небезопасно?


 
McSimm ©   (2008-06-19 13:19) [31]


> Так нормально будет? Или небезопасно?

Нормально.
Определять время сессии временем жизни куки на мой взгляд неправильно, правильно делать "вечные" куки и самому отслеживать временные интервалы при желании. Например, узнавая посетителя всегда, тем не менее при входе в персональные разделы просить авторизоваться, если истек интервал.
Можно добавить защиту от кражи Session_ID, сохраняя и проверяя user-agent (можно и IP или его часть)


 
БарЛог ©   (2008-06-19 13:31) [32]

> Нормально.
> Определять время сессии временем жизни куки на мой взгляд
> неправильно, правильно делать "вечные" куки и самому отслеживать
> временные интервалы при желании. Например, узнавая посетителя всегда, > тем не менее при входе в персональные разделы просить авторизоваться, > если истек интервал.
> Можно добавить защиту от кражи Session_ID, сохраняя и проверяя user-
> agent (можно и IP или его часть)

Спасибо. Буду делать так, если АП не переубедит :)


 
БарЛог ©   (2008-06-19 16:42) [33]

А что если к Session_ID и Client_ID "подмешивать", например, айпишник и имя_пользователя_виндовс ?

Тогда даже если кукис будет украден, злоумышленник не сможет его использовать.
Или не стОит?


 
McSimm ©   (2008-06-19 17:14) [34]

не подмешивать к ID, а хранить в сессионной информации на сервере.
И уж точно не имя пользователя виндоус :)
Юзер-агент и, возможно, IP - но я бы не стал IP.


 
БарЛог ©   (2008-06-19 17:59) [35]

А что за Юзер-агент?


 
БарЛог ©   (2008-06-19 18:01) [36]

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


 
McSimm ©   (2008-06-19 18:04) [37]


> И еще небольшой вопрос:

смешно :)

Это тема выходит за формат вопрос ответ. Придется что-то почитать про заголовки и управление кешированием.


 
McSimm ©   (2008-06-19 18:05) [38]

кстати, там и про user-agent попадется.


 
БарЛог ©   (2008-06-19 18:08) [39]

Спасибо. Иду учиться :)


 
БарЛог ©   (2008-06-19 21:14) [40]

Вот, если кому надо, хорошая статья по заголовкам: http://www.computer-land.ru/page103.html



Страницы: 1 2 вся ветка

Текущий архив: 2008.08.03;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.02 c
2-1215240510
Максим
2008-07-05 10:48
2008.08.03
combobox


15-1213620496
Поросенок Винни-Пух
2008-06-16 16:48
2008.08.03
Виста и юзер интерфейс


2-1215104995
blazerad
2008-07-03 21:09
2008.08.03
ShowMessage


15-1213938889
Slider007
2008-06-20 09:14
2008.08.03
С днем рождения ! 20 июня 2008 пятница


15-1213329311
News_new
2008-06-13 07:55
2008.08.03
"Нужны домены на кириллице". Д.Медведев поставил задачи