【发布时间】:2019-07-25 15:50:08
【问题描述】:
我想通过移动应用程序 (react-native) 安全地访问 REST API(.net)。我有以下解决方案,但每个都有其缺点。有人可以建议我解决问题的方法吗?
1.
REST API:带有用户名和密码的安全 REST API。
移动应用:每次调用 REST API 时发送用户名和密码。
缺点: 在逆向工程中获得用户名和密码,并存储在移动应用程序中。代码被混淆,密码被存储在一些地方,但黑客经过一定的努力成功获得了密码。
2.
REST API:已实现 auth 2
Mobile App:调用Rest API获取Token以备后用,但第一次需要通过auth凭证获取Token。通过逆向工程可以得到相同问题的用户名和密码。
我们如何将应用机密移出应用并从移动应用安全访问 REST API?
【问题讨论】:
-
我更喜欢使用 Oauth 2。我在我的 react-native 项目中使用了它。丢失令牌与丢失用户名和密码不同。通过使用 Oath2,如果你丢失了你的令牌,黑客就不能用它做太多的事情。另外,我们可以根据需要撤销token
-
但是你是如何获得第一次使用的令牌的?您是否将用户名和密码传递给 API?如果是,您将用户名和密码存储在哪里? @VuLuu
-
我不存储密码。当用户登录时,我们创建一个 POST 请求,.如果黑客窃取了该请求,他们就无法读取用户名和密码,因为凭据是经过编码的。用户登录成功后,只存储Token
-
我的应用没有登录,但它会在每次安装时在后台创建一个具有唯一 ID 的用户。
标签: rest react-native security asp.net-web-api oauth-2.0