返回到AngularJS应用程序的访问令牌是否可以被攻击者使用?

时间:2017-09-15 15:24:09

标签: keycloak

我们正在研究集成keycloak以保护由nodeJS应用程序提供服务的前端AngularJS应用程序,并向该服务器发出API请求。

观看了一些教程后,我们发现需要使用javascript适配器为AngularJS应用程序处理用户身份验证流程,然后使用仅承载策略保护我们的nodeJS应用程序,确保对我们的Node应用程序的angularJS传出请求包含带有承载令牌值的Auth标头。

我有一个问题是关于令牌被送回客户端的方式,因为我可以看到它被保存到一个cookie中,我认为它是javascript适配器读取的内容,以便我们能够将Auth标头写入角度应用程序的后续请求中。

我的问题是,这个令牌值是否可以从浏览器cookie中轻松读取并被试图发出api请求的攻击者恶意使用?

我认为这是不太可能的,因为攻击者需要知道存储在nodeJS端的秘密吗?

1 个答案:

答案 0 :(得分:0)

您无需知道使用访问令牌的客户端密钥。该秘密仅用于发出访问令牌。如果某人有您未到期的访问令牌,那么有人将能够使用您的身份,直到令牌过期。但是,您可以使用https,httponly cookie最小化被盗访问令牌的可能性。此外,您可以使用短令牌生命周期(例如5分钟)。但是你需要实现刷新令牌;否则,只要访问令牌过期,用户就需要重新登录。

我认为正确的实施并非无足轻重。我建议使用一些反向auth-proxy,它将在你的应用程序前处理授权和身份验证。提示:https://github.com/gambol99/keycloak-proxy