2010-09-21 1 views
0

Я слышал в старом подкасте stackoverflow, что они минимизировали использование сеансов и что в основном они нужны только при публикации. Как это может быть? Разве они не должны использовать какую-либо форму сеансов на каждом просмотре страницы, если не больше, чем сказать, что я вошел в систему? Как еще они отображают ваше имя пользователя вместо приглашения «Вход в систему» ​​в верхней части экрана?Безопасно зная, что вы вошли в систему, не используя сеансы

Когда этот тип вещей становится важным, это когда вы сохраняете свои сеансы в базе данных. Теперь каждый раз, когда вы касаетесь магазина сеансов, вы касаетесь своей базы данных. Так что было бы здорово, если бы вы могли избежать этого.

Вы можете сохранить все свое состояние в файле cookie, но если вы вообще не заботитесь о безопасности, вы, вероятно, захотите контролировать состояние на своем сервере.

ответ

2

Я не знаю, о подкасте вы имеете в виду, но я не совсем уверен, что они говорили, что вы думали, что они говорили ...

данные сеанса не обязательно должны быть каждый раз записывается в БД. Вы можете легко использовать кешированный (используя memcached или что-то подобное) посредника. Затем вы можете записать данные сеанса в БД каждые Х количество запросов/минут/пишет/независимо.

+0

Из того, что я понимаю, memcached не является полностью надежным и не должен использоваться таким образом, чтобы он отличался от ваших основных данных. Другими словами, это должен быть только кеш, и не более того. Поэтому вы правы, что это будет нормально для чтения. Писания должны записываться как в кеш, так и в хранилище данных. В любом случае, по-прежнему требуется, чтобы вы сохраняли состояние для каждой страницы во время входа в систему, правильно? –

+0

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