我一直在考虑将两种方法存储在Cookie中。一种方法是对所有数据使用一个cookie并将其存储为JSON字符串。
另一种方法是为每个数据使用不同的cookie。
我在第一种方法中看到的负面影响是,由于Cookie中有额外的JSON字符,它会在标题中占用更多空间。此外,我将不得不解析和字符串化JSON,这需要一点处理时间。积极的是只使用了一个cookie。我还缺少其他积极因素吗?
我在第二种方法中看到的负面消息是将使用更多的cookie密钥值对。
我将存储大约15-20个cookie。每个cookie的到期日期都是相同的。
根据我的理解,每个域的最大cookie数量约为4000.我们还没有接近这个数字。
我有什么问题可以忽略吗?哪种方法最好?
编辑 - 这些Cookie由JavaScript管理。
答案 0 :(得分:6)
如果您将任何数据分发给用户(这是cookie所做的事情),您应该对数据进行加密,或者至少对其进行签名。
这是保护数据免遭篡改所必需的。
此时,大小考虑因素已经过时(由于填充),解析JSON的性能开销也是如此(加密会导致更大的开销)。
结论:将您的数据存储为JSON(加密),签名,将其编码为base64,并将其存储在一个cookie中。请记住, 是Cookie的最大大小(而且是4K)。
参考:在众多其他框架和应用程序中,这是what Rails does。
答案 1 :(得分:2)
Cookie的最佳做法是尽量减少使用。例如,将cookie使用限制为仅记住会话ID,然后将数据存储在服务器端。
在欧盟,Cookie受法律规定的约束,除了会话ID之外,几乎所有内容都使用Cookie需要明确的客户同意。
答案 2 :(得分:0)
早上好。
我想我了解你。在某个时候,我使用存储为加密的json数据的cookie,但用于内部网或管理帐户。对于商店的用户,我使用了相同的做法。但是,要在商店站点上存储产品,我不使用加密。
重要:有时我在解密数据之前遇到json解码问题。根据您的用途,您可以采用一种系统,该系统存储以; 和:加密的数据,例如:
任何系统都可以被黑客入侵。您需要使用持续的用户数据验证和日志分析来创建应用。是的,这个系统需要快速。