Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: кукисы или сессии

Сообщения:  [1-10]   [11-15] 

 
 автор: Trianon   (08.09.2007 в 12:47)   письмо автору
 
   для: cheops   (08.09.2007 в 11:46)
 

Слегка дополню.

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

Это так в большинстве случаев.
Однако внутрисеансовые кукисы (с коротким временем жизни) тоже могут с успехом применяться, если хранить данные в сессиях а)бесполезно или б)неудобно.

Пример а) - хранение аутентифицирующих пользователя данных внутри сеанса. Стойкость к атакам такого метода аутентификации куда выше обычных. А держать authentication tokens в сессии бесполезно (а значит вредно), поскольку чтобы играть хоть какую-то роль в процессе, они должны сообщаться серверу клиентом, а не переноситься внутри сервера.

Случай б) - такое распределение программной логики, когда с данными посетителя основную активную работу выполняет слой тонкого клиента (проще говоря, JavaScript) всей программной архитектуры. Примером может служить интернет-магазин с корзиной написанной на JavaScript. Пока посетитель оперирует с корзиной покупок, все вычисления делаются на клиентской стороне. Окончательно сформированный заказ выкидывается на сервер для проверки и подтверждения. Естественно, JS слой добраться до кукисов может мгновенно, до сессии ему дотянуться куда проблематичнее - тут уже потребуется ajax с его серверной поддержкой.

>Да, сессии хранят данные на сервере, а cookie на машине клиента, т.е. в случае сессии обеспечить безопасность данных проще, чем в случае cookie. Однако, злоумышленик может похитить и SID-сессии и выдать себя за владельца данных.

Я бы сказал по-другому.
Да, сессии хранят данные на сервере, а cookie на машине клиента, но поскольку сама принадлежность сессии клиенту опирается либо на кукис либо на открытый GET/POST параметр, злоумышленик легко может похитить SID-сессии и выдать себя за владельца данных. Таким образом в случае сессии обеспечить безопасность данных не проще, а даже сложнее, чем в случае cookie, так как возникает еще один слой хранения данных, за устойчивость к атакам которого придется бороться.

   
 
 автор: cheops   (08.09.2007 в 11:46)   письмо автору
 
   для: Dizels   (07.09.2007 в 12:05)
 

А что вызывает затруднение? Сессии и куки не две разные альтернативы - они дополняют друг друга (более того, сессии используют cookie в работе). Когда вам требуется сохранять данные в течении сеанса или короткого времени (до часу) используются сессии, если вам требуется сохранять данные между сеансами и в течении длительного времени (до сотен дней) используются cookie. Не безопасность определяет выбор того или иного инструмента, а время жизни данных. Безопасность следует обеспечивать и в том и другом случае, тем более, что сессия использует cookie для своей работы. Да, сессии хранят данные на сервере, а cookie на машине клиента, т.е. в случае сессии обеспечить безопасность данных проще, чем в случае cookie. Однако, злоумышленик может похитить и SID-сессии и выдать себя за владельца данных.

Дело не в плюсах или минусах - дело во времени жизни данных - если они не потребуются при следующем сеансе - используются сессии, если потребуются - cookie.

   
 
 автор: Dizels   (07.09.2007 в 12:05)   письмо автору
 
   для: Ralph   (06.09.2007 в 18:51)
 

Я смотрю здесь не один я запутался:))

Интересно, a cheops что скажет?

   
 
 автор: Ralph   (06.09.2007 в 18:51)   письмо автору
 
   для: tricket   (06.09.2007 в 18:15)
 

сессия безопасней тем что хранится меньше) -Вставте в setcookie параметр time=60,а в session lifetime значение 500000-увидите,что живет меньше...вроде же сессия хранится в куках или в передаваемой ссылке-в куках хранится не сессия,а идентификатор сессии,а сам сессионный файл хранится на сервере

   
 
 автор: tricket   (06.09.2007 в 18:15)   письмо автору
 
   для: Trianon   (06.09.2007 в 18:07)
 

Trianon
из-за чего злится то?)
просто он наверное имел в виду что сессия безопасней тем что хранится меньше) попробуй её успеть своровать... скопировать.. составить http запрос... хотя у меня окно браузера не закрывается часов по 10) хм пойду ка я пассы менять)))
кстати этой темой и меня запутали) вроде же сессия хранится в куках или в передаваемой ссылке(вроде php должен это делать, если куки у товарища отключены)

   
 
 автор: Trianon   (06.09.2007 в 18:07)   письмо автору
 
   для: Hamilion   (06.09.2007 в 17:36)
 

Вы меня заболтать решили?
Я не спрашивал, как надо переделать.
Я спросил, на основании чего Вы решили, что так называемая "безопасность" у сессии выше чем у её кукиса?

А если уж Вы вспомнили про потенциально отключаемые кукисы, то скажите тогда и о том, через какое место сервер будет узнвать сессию такого клиента. И насколько это место устойчиво к перехвату.

Зла не хватает.

   
 
 автор: Hamilion   (06.09.2007 в 17:36)   письмо автору
 
   для: Trianon   (06.09.2007 в 17:23)
 

Тогда можно сделать привязку сессии к IP. И вообще кукисы храняться на компьютере пользователя и в случае общего доступа к компьютеру подделать кукисы легче, чем сессии.
А еще пользователь может отключить кукисы и соответственно авторизация не будет работать. Мое мнение надо делать и на том, и на том одновремено

   
 
 автор: Trianon   (06.09.2007 в 17:23)   письмо автору
 
   для: Hamilion   (06.09.2007 в 17:09)
 

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

Если я подменю кукис (или get/post-параметр) сессионного ключа, как Вы думаете, что произойдет с Вашей безопасной сессией?

   
 
 автор: Hamilion   (06.09.2007 в 17:09)   письмо автору
 
   для: Dizels   (06.09.2007 в 16:04)
 

Использование сессий или кукисов, обусловлено, помимо безопасности, удобством для пользователя: сессии работают до того, пока не закроется окно браузера или вы их не обнулите принудительно, а если вы хотите, чтобы пользователю, вернувшись на ваш сайт, не пришлось логиниться по-новой - используйте кукисы. Еще остается вопрос безопасности, т.е. считается, что сессии безопасней, в отличии от кукисов, которые можно подменить. Вот.

   
 
 автор: Trianon   (06.09.2007 в 16:54)   письмо автору
 
   для: Dizels   (06.09.2007 в 16:47)
 

В сессии аутентифицирующий токен держать бесполезно
Его хранить имеет смысл только в cookies. либо передавать явным или скрытым параметром в сложных случаях (wap и т.п.)

Просто в силу того, что имеющуюся сессию тоже придется чем-то аутентифицировать.

   

Сообщения:  [1-10]   [11-15] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования