安全性 - 会话(默认使用 - Cookie)与本地存储

时间:2012-05-31 14:03:43

标签: php javascript

我不关心浏览器兼容性。

我想知道是否将我的状态从PHP受控(服务器端)会话移动到JavaScript受控(客户端)HTML 5本地存储将获得或失去安全性。

我认为我会获得安全性,因为现在不是让用户标识符驻留在cookie中,而cookie通常是文件,或者是易于访问的sql数据库......它不在某种内部浏览器存储中。 + b.c.它是一种更新的技术,我希望能够在其中设计更多的安全性。

通过从PHP会话移动到JavaScript本地存储,我获得或失去安全性。 (这适用于用户ID,page_id等,重新加载后保留的当前状态,如果需要则更长)。

我有一个JavaScript解决方案,我想替换我的PHP会话。这就是我问的原因。我不关心浏览器的兼容性。

这是本地存储上的informative site。但没有提到安全性。

4 个答案:

答案 0 :(得分:2)

两种类型的本地存储(localStorage和Cookies)都使用某种标识符,显然存储在客户端上。

两者都使用哈希机制来保护它不被改变为另一个用户。

本地存储比Cookie更安全(参见here)。

显然,如果要将用户标识符从cookie移动到localStorage,则必须编写会话协议。

两者都可以被盗为另一个用户。虽然localStorage的可能性较小。

为了使您健壮,您需要一种能够帮助解决上述问题的指纹识别技术。

答案 1 :(得分:1)

  

我有一个JavaScript解决方案,我想用。替换我的PHP会话。

没有。不要做。会话存储在服务器端。发送到浏览器的cookie通常是该记录的标识符。会话存储用户特定的数据。用户可以轻松修改存储在客户端的任何内容。因此,如果用户修改会话以指向另一个用户,则安全性将不再成立。

LocalStorage NOT 用于存储会话。坚持使用PHP会话或在服务器端实现的任何其他会话机制。

<强>更新

  

但是存在同样的安全漏洞......用户可以作为一个登录   person ...摆弄Session的session_id并成为某人   否则......摆弄一个session_id ......等于摆弄你是谁   似乎是服务器?...这将与摆弄相同   local_storage中加密的user_id。

没有。假设我找出你要加密的算法。我知道另一个用户说UserB。我使用该算法加密了他的用户名。如果我以某种方式用加密的字符串覆盖我的localStorage,我现在就是他。实际上这是不太可能的。可以想象它有100个用户,128个字节串是标识符。你确定你能够摆弄它并将其修改为会议表中存在的另一条记录吗?

答案 2 :(得分:0)

本地存储最适合您希望以(更永久)方式在客户端上缓存的数据,然后使用常规浏览器缓存。它唯一的方式是更安全&#34;是否允许用户使用从未发送到服务器的数据。

如果您担心会话劫持,首选解决方案是使用https / ssl并加密您与客户端之间的所有流量general overview问题和解决方案wikipedia {我们需要更多信息才能为您提供更具体的信息。)

答案 3 :(得分:0)

您不会获得或失去安全性,因为在大多数浏览器中,网站设置的所有数据都存储在同一文件夹中

相关问题