如何安全地保持客户的状态?

时间:2014-11-27 18:46:49

标签: javascript php security cookies laravel

关注此问题:Can a cookie that was generated with Javascript (not send in the header by the server) be stolen / used by an attacker?

这让我发疯了 如何使用FB访问令牌在客户端保持状态? 应该使用它来访问自己的服务器上的资源,也可以从FB服务器访问资源。假设一个人使用js框架(Backbone / Marionette)和REST身份验证 它不能这样加密,但除了使用cookie来保持客户端的状态之外别无他法。

我做了很多研究 每个来源都提到要在客户端保持状态,以避免服务器会话,但我无法找到解释如何安全地执行此操作的单一来源。

如果您知道答案,请分享。 谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用只有服务器知道的密钥对数据进行加密或签名,并使用它来解密/验证信息。

但是,根据定义,您无法安全地存储信息,这也是在客户端本身生成的。这只是客户自己玩耍。任何人都可以检查究竟发生了什么,因此您无法使用任何密钥对任何内容进行签名或加密,因为根据定义,如果您将密钥提供给每个客户端,密钥就不再是秘密。您也不能信任客户端发送到服务器的任何信息,因为客户端可以随意向服务器发送任何信息。您无法信任客户端上运行的任何代码,因为它完全不受您的控制。