我有一个使用javascript登录的应用程序。经过身份验证后,服务器向我发送一个令牌,我必须将其附加到我向服务器发出的每个ajax请求中,以便服务器知道我有资格询问信息。但是,我的应用程序不是单页面应用程序,这意味着在点击链接后,页面会重新加载,我需要重新进行身份验证。
是否可以安全保存令牌并在页面重新加载后再次访问它?
我想到的选项是将其保存在cookie或本地/会话存储中,但是,我不确定这些是否足够安全。
您是否知道在客户端保存令牌的任何其他更安全的方法?或许您是否知道我提到的选项是否足够安全以存储这样的敏感信息?
感谢您的任何建议。
编辑:我无法更改服务器端应用程序,令牌必须存储在客户端上。
答案 0 :(得分:1)
本地存储:保密或敏感信息不是更安全的方法。
Cookie :有很多关于窃取Cookie和阻止跨站点脚本的文章。
会话存储:安全,但问题是您在服务器端使用的技术。 是NodeJS还是PHP或其他什么?
我已经使用NodeJS和PHP进行身份验证。
使用Express.js
,您可以为每个用户维护会话,并在每个请求/页面加载时检查/验证,并验证它是否是有效的用户/请求。
它还提供了一个活动的会话检查,即,如果用户处于非活动状态,有时会自动销毁/清除/清除会话。
除了passport.js,你也可以实现这个,但这取决于你的要求。
选中此LINK
答案 1 :(得分:0)
如果您认为令牌是保密的,那么您不应该考虑将其保存在客户端。
即使您处于想要在客户端保存此类机密信息的情况,您提到的内容也是正确的(Cookie,本地/会话存储)。保存前加密您的令牌。
本地存储: 它会在您的域名下保存数据。没有其他域名无法访问您信息的本地存储信息。
如果我错了,请纠正我,如果我是对的,请接受。