【问题标题】:Client Side Only Cookies仅客户端 Cookie
【发布时间】:2011-06-06 18:20:06
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 我想把数据加密保存在服务器上,只有用户有密码才能访问。
  • 是的,这必须在 javascript 中完成。但是,如果您要处理任何大量数据,则需要将大量处理工作放到客户端的浏览器上。

标签: javascript html cookies


【解决方案1】:

对于您正在寻找的东西,我会说 javascript 是您能做的最好的。

您可以在服务器上检索加密数据并在客户端使用 javascript 对其进行解密。不传输密码,不为用户保密。

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

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

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

【讨论】:

  • 感谢您的回答。我的问题更多是关于在哪里存储密码,而不是关于加密本身。但我会编辑我的问题以澄清。
  • 好吧,我误会了。看看会话变量thomasfrank.se/sessionvars.html
  • sessionvars 看起来很完美,但我必须考虑安全问题。所以我想接受你的评论而不是你的回答:-) 我会接受你的回答。感谢您的帮助。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 2014-05-10
    • 2021-02-04
    • 1970-01-01
    • 2014-05-16
    • 2014-03-31
    • 2012-06-20
    相关资源
    最近更新 更多