URL哈希中的JSON - 一个坏或好主意?

时间:2011-08-05 01:04:37

标签: javascript json

我已经创建了一个帮助对象来将JSON存储在URL哈希中。请参阅项目here on GitHub

这对于在没有cookie的情况下持久保存页面设置非常有用。工作得很好,我喜欢它。

对这种方法有什么想法和反对意见?我读过安全性可能会。是否真的在新浏览器中使用json2.js或本机JSON对象时?

4 个答案:

答案 0 :(得分:7)

rison似乎是一种更紧凑,更有效的方式。特别是因为JSON中使用的许多字符都不是URI安全的。

此外,将敏感信息(即大部分信息)包含在服务器和客户端之间来回的任何内容中很少是明智之举。这就是为什么大多数“会话”方案只在cookie中存储会话ID,而不是所有信息。在这种情况下,将ID添加到URL并不比使用cookie更难。事实上,这是在过去几天使用PHP进行会话的默认方式,而Cookie是一些浏览器的高级功能。

答案 1 :(得分:3)

您应该知道网址长度有限,并且在不同浏览器之间发生了变化: http://www.boutell.com/newfaq/misc/urllength.html

答案 2 :(得分:1)

你在哪个网址存储它? #fragment?query

如果是 查询 ...

那些:

  • 保留在服务器日志中,
  • 由代理人捕获,
  • 并作为 referers 发送到您可能从您的网页链接到的其他网站。

答案 3 :(得分:0)

如果要在单个浏览器中管理状态,并且不与其他用户或浏览器共享,则在localStorage中维护状态可能是更好的选择。诸如amplify.store之类的框架支持您将遇到的大多数浏览器(IE 5 +,Firefox 2 +,Safari 4 +,Chrome,Opera 10.5 +,iPhone 2 +,Android 2+):{ {3}}

它比cookie更容易使用,更强大,并且没有@Javier提到的潜在问题。

如果您确实需要跨浏览器(和/或用户)管理状态,那么网址是您最好的选择,在这种情况下我也会看到里昂。