如果我们从其余服务器获取令牌并在每个授权请求中使用 AuthorizationToken 标头,则当浏览器页面关闭时,我们仍然需要保留它。
唯一通用的方法是将令牌放入 cookie。但这样即使cookie不用于身份验证,也可能被XSS窃取。
我们不能使用 httpOnly 标志。所以:
还有其他具体方法来保护令牌并保证其安全吗?
如果整个会话期间都使用HTTPS,并且带有token的cookie被盗,是否有可能用token劫持https会话?
我的回答可能有点天真,但为什么不将令牌存储在浏览器的持久存储中。如果你使用 Angular,代码如下:
function((...), $window) {
(...)
$window.sessionStorage['userToken'] = '<user-token>';
}
我真的没有看到其他方法(cookie 除外)在浏览器页面关闭时保留此类提示。
Cookie 的问题在于,您的客户端需要成为浏览器才能透明地利用此功能...此外,它实际上并不是 RESTful 服务中更好的身份验证方法;-)
您可以将其与具有到期日期和刷新功能的安全令牌机制结合起来,如以下链接所述:https://templth.wordpress.com/2015/01/05/implementing-authentication-with-tokens-for-restful-applications/.
此外,您还可以使用Angular等提供XSS解决方案的JS框架。例如,请参阅以下链接:
- http://java.dzone.com/articles/angularjs-how-handle-xss
- angularjs + 防止跨站脚本
希望它能为您的问题提供一些提示,
蒂埃里
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)