在考虑安全性和用户体验时,哪些信息可以确定,可接受,甚至好主意存储在Cookie中?
编辑:
了解敏感信息,如用户名,密码,SSN,信用卡号不属于那里,做什么?
答案 0 :(得分:18)
绝对不是密码!或者任何敏感的东西......记住,饼干存储在人们的计算机上,所以从你的角度来看(作为一个网站开发者),它们基本上是在野外,任何人都可以访问。
通常的做法是将会话ID存储在cookie中,并将所有其他相关信息存储在服务器上的数据库(或文件或其他)中,并按会话ID索引。
答案 1 :(得分:13)
回答存储在cookie中 可接受的内容要容易得多。应该保留任何应该保持安全的东西。这包括密码,信用卡号码,社会安全号码等。
我认为 okay 存储用户的登录名,因为该信息确实不敏感。您网站的用户偏好设置也应该没问题。
请记住,cookie只是一个纯文本文件,某人(或某个应用程序)可以打开并阅读或写,因此您也不应该信任从cookie收到的信息。像其他任何用户输入一样消毒它。
答案 2 :(得分:6)
一个建议是,您不将任何密钥存储在Cookie中。即电子邮件地址,列ID等。如果是,您应该加密数据。
答案 3 :(得分:5)
答案 4 :(得分:4)
除了敏感和安全相关的数据之外,对你不能存储和存储的内容实际上没有限制但只记得如果数据不是在服务器端持久存在,它可能会完全丢失并且应该假设如果用户删除cookie,恢复他的设置/配置不会给他带来太多不便。除了使用良好的常识之外,没有其他指导原则。
但是对cookie有限制。每个域名不应超过19个cookie,根据IE limits,cookie不得大于4KB(4096字节):
每个cookie都以名称值开头 对。这对后跟零或 通过更多的属性 - 值对 用分号分隔。一个 域名,每个cookie仅限于 4,096字节。这个总数可以存在 一个4千字节的名称 - 值对 (KB)或最多20个名称 - 值对 总共4 KB。如果计算机有 没有足够的空间存放 cookie,cookie被丢弃。它是 没有截断。应用应该使用 尽可能少的饼干和 尽可能小的饼干。 此外,应用程序应该是 能够处理丢失的cookie。
如果Web应用程序使用超过19个 自定义cookie,ASP会话状态可以 迷路了。 Internet Explorer 4.0和 更高版本允许总共20个 每个域的cookie。因为 如果您使用,ASPSessionID是一个cookie 20个或更多自定义cookie,浏览器 被迫丢弃ASPSessionID cookie并丢失会话。
答案 5 :(得分:3)
不要在Cookie中存储任何内容,以便在不通过适当渠道的情况下对您的网站进行黑客攻击或访问。通常,会话ID或用户ID只存储在cookie中,并且通常采用的形式对除cookie消费者以外的任何人都不透明。
答案 6 :(得分:2)
我会避免存储任何可能会损害网站功能的内容。
因此,存储诸如用户ID,购物车物品价格,密码,用户角色等内容是有问题的。我把这种东西放在用户服务器上的会话数据中。
存储用户的姓名或个人资料信息(仅用于显示目的),自定义首选项(颜色,文字,等等)都可以。
答案 7 :(得分:2)
在cookie上保存敏感信息没有任何问题,只要该信息是加密的(数据本身不是明文)并且cookie是安全cookie(https)。实际上,将一个数据库服务器中的所有敏感数据都可能被黑客攻击然后您面临可能更大的安全问题是非常糟糕的。