仅客户端Cookie

时间:2011-01-10 20:06:35

标签: javascript html cookies

我需要类似cookie的东西,但我特别不希望它回到服务器。我称之为“客户端会话cookie”,但任何合理的机制都会很棒。

基本上,我想在服务器上存储一些加密的数据,并让用户在浏览器中输入密码。浏览器使用密码解密数据(或使用密码创建和加密数据),服务器仅存储加密数据。为了保证服务器上的数据安全,服务器不应该存储并且永远不应该接收密码。理想情况下,应该有一个cookie会话到期以进行清理。

当然,当用户浏览网站时,我需要在多个页面上提供它。

我能想到的最好的是某种iframe机制来将数据存储在javascript变量中,但这很难看。有没有人有任何想法如何实现这样的东西?

FWIW,该平台是ASP.NET,但我认为这并不重要。它需要支持广泛的浏览器,包括移动。

在回答下面的一个答案时,让我澄清一下。我的问题不是如何实现加密,这不是问题。问题是存储密码的位置,以便它在页面之间是持久的,但不会超出会话,并且服务器不会看到它。

2 个答案:

答案 0 :(得分:10)

您可以使用JavaScript的 localStorage 对象。 Dive Into HTML5电子书有一个很好的章节。我认为本章还提到了一些不支持localStorage的浏览器可能的解决方法。

答案 1 :(得分:5)

对于你要找的东西,我会说javascript是你能做的最好的。

您可以将加密数据检索到服务器上,并在客户端使用javascript对其进行解密。没有密码传输,对用户来说没有秘密。

这取决于您使用的是哪种加密算法,但有相应的库(例如Stanford Javascript Crypto Library

(但我不明白你为什么要谈论cookies)

如果您对存储方面而不是加密方面感兴趣,也许您可​​能会考虑Thomas Frank的session variables