【发布时间】:2021-03-24 13:41:20
【问题描述】:
我们正在开发一个使用 Amplify 托管在 AWS 上的 React 前端网站的应用程序。这与运行在 EC2/Elastic Beanstalk 上的 .NET Core 3.1 Web API 进行通信。 Cognito 用于通过配置为使用 JWT 令牌的 Web API 进行用户身份验证。
它工作正常,但我们注意到 Cognito 提供程序将 JWT 访问令牌存储在浏览器本地存储中。这是我们在 Chrome 中使用 F12 并检查本地存储时看到的。
根据我们的阅读,不建议将访问令牌存储在本地存储中,因为这会使应用程序容易受到 XSS 攻击。奇怪的是,Cognito 身份提供者选择在这里存储敏感信息。
如果认为这种方法不安全,是否可以将提供程序配置为将此信息存储在其他位置,例如 cookie?
另外,当我们同时控制前端和后端时,是否有替代方法可用于保护不涉及令牌的 API?显然,API 需要知道哪个用户登录到 Web 应用程序才能执行授权检查。 [注意应用程序中的授权是记录级别的,并在数据库表中定义,因此它超越了简单的用户配置文件属性。]
非常感谢您的建议。
道格
【问题讨论】:
标签: reactjs amazon-web-services amazon-cognito access-token