Форум: "Прочее";
Текущий архив: 2008.08.03;
Скачать: [xml.tar.bz2];
ВнизХранение сессии в кукисах Найти похожие ветки
← →
БарЛог © (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;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.007 c