我想知道在系统中发送会话密钥的最佳选择。
在我的系统中,有一个API服务器,供Web浏览器,命令行界面和桌面应用程序使用。它通过查看Authorization
HTTP标头对用户进行身份验证。
当前,浏览器将会话密钥存储在localStorage中,并将其附加在Authorization
标头中,用于需要登录的请求。但是,有人指出,一种更安全的方式来存储会话密钥之类的机密方法是使用仅HTTP cookie。
问题是Web浏览器客户端将无法读取仅HTTP cookie,并将会话密钥放在HTTP标头中。
鉴于这种情况,我正在考虑扩展API服务器以使用Authorzation
标头或cookie之一来授权用户。这是可行的选择吗,还有其他选择吗?
答案 0 :(得分:2)
您是对的,Cookie和授权标头不兼容。正如您所指出的,您正在研究两个用例:一个用于浏览器使用,另一个用于API(cli,桌面应用程序)。
如果您想通过一个身份验证方案同时支持这两种方法,则需要做更多的工作。作为一个很好的经验法则,浏览器可以很好地使用Cookie,并且易于安全地进行设置。您应该选择使用浏览器进行基于cookie的会话管理。
鉴于这种情况,我正在考虑将API服务器扩展到 使用授权标头或cookie之一来授权用户。是 这是一个可行的选择,还有其他选择吗?
是的,这是可行的,它将使您的浏览器用例更加安全。至于替代方案,我整理了一个Web Authentication Guide,它将极大地帮助您探索您的选择。