【问题标题】:Should I encrypt non-authentication cookies (i.e those that solely enhance the user experience)?我应该加密非身份验证 cookie(即那些仅增强用户体验的 cookie)吗?
【发布时间】:2013-01-11 00:27:54
【问题描述】:
我正在我的网站上使用 cookie。有些是用户身份验证 cookie(我知道加密很重要),而另一些只是存储用户特定的数据,例如他们的显示偏好。我的问题是:这些 cookie 的存在是为了增强用户体验,而重复访问服务器来解密这些 cookie 显然会使用户体验变慢。我有什么理由要加密这些 cookie 吗?如果我忽略了这样做,用户在读取仅发生在客户端的 cookie 时会有更流畅的体验。谢谢
【问题讨论】:
标签:
security
cookies
encryption
【解决方案1】:
您提出了一个带有错误示例的有效问题。非关键 cookie 不需要加密。
但是
对于非关键 cookie,我会考虑语言选择、页面主题、最喜欢的搜索等。它们不需要加密,因为它们传输的信息不是机密的。但它仍然意味着应该检查这些值,即。不直接包含在页面内容中,不被隐式信任,因为用户可以更改其值。
至于用户购物篮(我认为这很关键)...您应该将数据保存在会话中并向用户发出会话 cookie...。就是这样。或者,如果您使用 cookie,请对其进行加密并检查其内容,然后再对从该 cookie 或任何 cookie 接收的数据做出任何决定或操作。
你必须记住,加密一个cookie,并不一定意味着它的值不能改变,它意味着它不能被读取,所以你应该总是加密一些上下文信息,即。用户名、时间、ID 等,并在解密后验证它们。