【发布时间】:2020-03-05 05:56:27
【问题描述】:
我的任务是在 React Native 应用程序中实现用户登录/注册流程。这个应用程序没有什么特别花哨的。通常的登录、注册(使用短信验证)和密码重置屏幕就足够了。所以我去找身份提供者。 Auth0 和 AWS Cognito 是最合适的发现。我的经理认为 Auth0 太贵了,所以我们放弃了它。这给我留下了 Cognito 选项。
根据docs,可以完全替换默认 UI(这让 UI/UX 团队感到高兴)但仍使用底层基础架构。我们团队非常关心的一件事是安全性。根据this 和this,授权请求只能通过外部代理(移动用户浏览器)进行。所以我深入研究了 aws-amplify 的源代码,发现最终它does(如果我在这里错了,请纠正我)只是对 AWS auth 端点的一个简单 API 请求,它传递了我的 ClientId 和其他属性.
这让我有点担心与 AWS 交互的安全性。由于 AWS 端点是安全的,我知道中间人攻击被丢弃了。
但是是什么让攻击者无法反编译我的移动应用程序、访问 ClientId 并向 AWS 发出直接请求? AWS Amplify 真的那么不安全还是我在这里遗漏了什么?
【问题讨论】:
标签: react-native amazon-cognito aws-amplify