Зачем хранить сеансы на сервере, а не внутри печенья?
Вопрос
Я уже некоторое время использую колбу, и я действительно наслаждаюсь рамками. Одна вещь, которую я не понимаю, это то, что почти во всех других местах они говорят о хранении сеанса на сервере и идентификатор сеанса на клиенте, который затем определит сеанс. Однако после использования колбы я не чувствую необходимости этого делать. Сохранение сеанса в качестве файла cookie на клиенте Cryptogrography служит мою цели и кажется довольно безопасным. Единственное, что я не могу шифровать ключи сеанса, например:
session['life'] = 'the great one'
появится как
life='gfhjfkjdfa some encryption kj'
в печенье, сохраненном на клиенте. Но как бы это дело, так как он все еще зашифрован. Я уверен, что люди здесь знают вещи намного лучше, чем я, поэтому просьба кого-то, пожалуйста, уточнить :-)
Решение
Даже если ваши данные зашифрованы, пользователь все еще может откатить свое cookie к предыдущему состоянию (если вы не запускаете кодировку одноразовых IDS и т. Д.)
Например, Cookie говорит, что у пользователя есть 100 кредитов, пользователь проводит 100 кредитов, они получают новое cookie, говоря, что у них есть 0 кредитов. Затем они могли восстановить их предыдущее cookie (с 100 кредитами).
В зависимости от того, как вы зашифруете файл cookie, пользователю также может удалить ключи, вставить поддельные данные и т. Д.
Другие советы
Если данные сеанса необходимы на сервере, имеет смысл хранить его на сервере. Он удерживает большую часть данных, отправленную взад и вперед от клиента. Кроме того, файлы cookie имеют ограничение на сумму данных, которые они могут хранить.
В дополнение к точкам, уже упомянутым выше
Пользователи могут отключить файлы cookie, используя настройки их браузера. Многие антивирусные сканеры также сканируют и флаг печенье как риск из-за которых также могут привести к допущению файлов cookie на компьютере пользователей.
Печенье можно удалить пользователем даже в середине своей сессии. (На самом деле, я непреднамеренно сделал это на днях, когда один мой компьютер сканирует, перечислил отслеживание печенья ... и я просто нажал «чистым», и они все прошли). В случае, если пользователю произойдет, чтобы удалить куки, состояние пользователей будет потеряно.
Если вы используете файлы cookie для управления всей состоянием, вы всегда зависят от клиентской среды и его настроек. Таким образом, вы, вероятно, по крайней мере, нуждаетесь в механизме падения в случае удаления файлов cookie / отключены и т. Д., Для вашего приложения будет работать правильно.
Флэк для реализации Securecookie использует не шифрует значения. Отказ Единственное, что обеспечивается, заключается в том, что пользователь не может изменить cookie, не зная секрета, используемого приложением.