Зачем хранить сеансы на сервере, а не внутри печенья?

StackOverflow https://stackoverflow.com/questions/3948975

  •  08-10-2019
  •  | 
  •  

Вопрос

Я уже некоторое время использую колбу, и я действительно наслаждаюсь рамками. Одна вещь, которую я не понимаю, это то, что почти во всех других местах они говорят о хранении сеанса на сервере и идентификатор сеанса на клиенте, который затем определит сеанс. Однако после использования колбы я не чувствую необходимости этого делать. Сохранение сеанса в качестве файла cookie на клиенте Cryptogrography служит мою цели и кажется довольно безопасным. Единственное, что я не могу шифровать ключи сеанса, например:

session['life'] = 'the great one'

появится как

life='gfhjfkjdfa some encryption kj'

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

Это было полезно?

Решение

Даже если ваши данные зашифрованы, пользователь все еще может откатить свое cookie к предыдущему состоянию (если вы не запускаете кодировку одноразовых IDS и т. Д.)

Например, Cookie говорит, что у пользователя есть 100 кредитов, пользователь проводит 100 кредитов, они получают новое cookie, говоря, что у них есть 0 кредитов. Затем они могли восстановить их предыдущее cookie (с 100 кредитами).

В зависимости от того, как вы зашифруете файл cookie, пользователю также может удалить ключи, вставить поддельные данные и т. Д.

Другие советы

Если данные сеанса необходимы на сервере, имеет смысл хранить его на сервере. Он удерживает большую часть данных, отправленную взад и вперед от клиента. Кроме того, файлы cookie имеют ограничение на сумму данных, которые они могут хранить.

В дополнение к точкам, уже упомянутым выше

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

  2. Печенье можно удалить пользователем даже в середине своей сессии. (На самом деле, я непреднамеренно сделал это на днях, когда один мой компьютер сканирует, перечислил отслеживание печенья ... и я просто нажал «чистым», и они все прошли). В случае, если пользователю произойдет, чтобы удалить куки, состояние пользователей будет потеряно.

Если вы используете файлы cookie для управления всей состоянием, вы всегда зависят от клиентской среды и его настроек. Таким образом, вы, вероятно, по крайней мере, нуждаетесь в механизме падения в случае удаления файлов cookie / отключены и т. Д., Для вашего приложения будет работать правильно.

Флэк для реализации Securecookie использует не шифрует значения. Отказ Единственное, что обеспечивается, заключается в том, что пользователь не может изменить cookie, не зная секрета, используемого приложением.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top