在javascript中存储凭证式信息

问题描述:

我有一个应用程序,我使用JavaScript登录。通过身份验证后,服务器向我发送一个令牌,我必须向每个向服务器发出的ajax请求附加一个令牌,以便服务器知道我有资格索要信息。但是,我的应用程序不是单页应用程序,这意味着点击链接后,页面会重新加载,我需要重新进行身份验证。在javascript中存储凭证式信息

是否可以安全地保存令牌并在页面重新加载后再次访问?

我想过的选项是将它保存在cookie或本地/会话存储中,但是,我不确定这些选项是否足够安全。

您是否知道在客户端保存令牌的其他更安全的方法?或者你是否知道我提到的选项是否足够安全以存储这样敏感的信息?

感谢您的任何建议。

编辑:我无法更改服务器端应用程序,令牌必须存储在客户端上。

当您认为令牌是保密的,那么您不应该考虑将其保存在客户端。

即使您在某种情况下想要在客户端保存这样的机密信息,那么您提到的内容也是正确的(Cookie,本地/会话存储)。在保存之前加密您的令牌。

本地存储: 它正在您的域名下保存数据。没有其他域没有访问您的信息的本地存储信息。

请纠正我,如果我错了,接受它,如果我是正确的。

本地存储:不是保护机密/敏感信息的安全方式。

Cookies:那么写了很多关于窃取cookie和防止跨站点脚本的文章。

会话存储:是安全但问题是,你正在使用服务器端的哪种技术。 它是NodeJS还是PHP或其他?

我已经使用NodeJS和PHP进行身份验证。

使用Express.js您可以为每个用户维护一个会话,并在每个请求/页面加载时检查/验证,并验证它是否是有效的用户/请求。 它还提供了一个活动的会话检查,即,如果用户有时不活动,会话将自动销毁/清除/清理。

除了passport.js,你也可以实现这一点,但它取决于你的要求。

入住这LINK

+0

在服务器端,它是微软编写的应用程序,我没有访问二进制文件,所以改变了服务器端是不是一种选择。我必须将令牌存储在客户端。 – leopik 2014-12-05 10:02:42

+0

我还有另外一个选择,但我不知道它是否安全。 我已经创建了一个''元素,并将此元素添加到文档中的任何位置。 现在我可以相应地访问/修改/更新。 – 2014-12-05 18:12:21