Android 我如何确保移动应用程序不会';t调用我的RESTAPI窃取用户/密码
我们正在开发一个基于REST的API,开发者可以从他们的移动应用程序(如google play应用程序)调用该API 我们如何确保应用程序开发人员不会通过存储用户或将其发送到“服务器”来窃取用户/通行证 如果我们不信任应用程序开发人员,是否存在解决此问题的技术解决方案Android 我如何确保移动应用程序不会';t调用我的RESTAPI窃取用户/密码,android,ios,rest,security,windows-phone,Android,Ios,Rest,Security,Windows Phone,我们正在开发一个基于REST的API,开发者可以从他们的移动应用程序(如google play应用程序)调用该API 我们如何确保应用程序开发人员不会通过存储用户或将其发送到“服务器”来窃取用户/通行证 如果我们不信任应用程序开发人员,是否存在解决此问题的技术解决方案 一种解决方案是在本机平台上拥有我们自己的可信身份验证应用程序,并让应用程序开发人员使用它进行身份验证吗?OAuth试图通过将用户发送到提供商进行身份验证,然后再将其带回原始站点或应用程序来解决此问题。这就是“使用Facebook登
一种解决方案是在本机平台上拥有我们自己的可信身份验证应用程序,并让应用程序开发人员使用它进行身份验证吗?OAuth试图通过将用户发送到提供商进行身份验证,然后再将其带回原始站点或应用程序来解决此问题。这就是“使用Facebook登录”和“使用Twitter登录”系统的工作原理
有一个方便的图表显示了请求是如何来回传递的。我建议首先删除第三方应用程序使用用户的凭据将用户登录到您的服务的功能,因此应用程序没有理由首先要求用户的凭据 相反,我会向第三方开发人员提供一个身份验证端点(查看),以便他们使用您的身份验证服务在其应用程序中注册和验证用户。这很有趣,因为用户登录时必须重定向到您的身份验证端点,所以第三方应用程序不可能在任何时候访问他们的凭据 然而,没有什么能阻止邪恶应用程序的开发者创建一个虚假表单,要求用户提供敏感信息以便登录,例如电子邮件和密码 在这种情况下,您可以做两件事:
- 首先,教育您的用户(例如,当他们创建帐户时)不要在您的网站以外的任何其他网站上提供他们的凭据。这通常由银行和保险公司完成
- 实现为身份验证过程添加另一层安全性。大多数网络公司,如Google或Twitter,允许您在登录时提供常用凭据的同时,要求您使用带外介质验证登录过程。他们通常通过手机短信向您发送PIN码来实现这一点,您必须在网页上输入PIN码才能完成登录过程。 因此,如果有人试图登录到您用户的某个帐户,则该帐户将失败,除非他们也可以访问用户电话