Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 我如何确保移动应用程序不会';t调用我的RESTAPI窃取用户/密码_Android_Ios_Rest_Security_Windows Phone - Fatal编程技术网

Android 我如何确保移动应用程序不会';t调用我的RESTAPI窃取用户/密码

Android 我如何确保移动应用程序不会';t调用我的RESTAPI窃取用户/密码,android,ios,rest,security,windows-phone,Android,Ios,Rest,Security,Windows Phone,我们正在开发一个基于REST的API,开发者可以从他们的移动应用程序(如google play应用程序)调用该API 我们如何确保应用程序开发人员不会通过存储用户或将其发送到“服务器”来窃取用户/通行证 如果我们不信任应用程序开发人员,是否存在解决此问题的技术解决方案 一种解决方案是在本机平台上拥有我们自己的可信身份验证应用程序,并让应用程序开发人员使用它进行身份验证吗?OAuth试图通过将用户发送到提供商进行身份验证,然后再将其带回原始站点或应用程序来解决此问题。这就是“使用Facebook登

我们正在开发一个基于REST的API,开发者可以从他们的移动应用程序(如google play应用程序)调用该API

我们如何确保应用程序开发人员不会通过存储用户或将其发送到“服务器”来窃取用户/通行证

如果我们不信任应用程序开发人员,是否存在解决此问题的技术解决方案


一种解决方案是在本机平台上拥有我们自己的可信身份验证应用程序,并让应用程序开发人员使用它进行身份验证吗?

OAuth试图通过将用户发送到提供商进行身份验证,然后再将其带回原始站点或应用程序来解决此问题。这就是“使用Facebook登录”和“使用Twitter登录”系统的工作原理


有一个方便的图表显示了请求是如何来回传递的。

我建议首先删除第三方应用程序使用用户的凭据将用户登录到您的服务的功能,因此应用程序没有理由首先要求用户的凭据

相反,我会向第三方开发人员提供一个身份验证端点(查看),以便他们使用您的身份验证服务在其应用程序中注册和验证用户。这很有趣,因为用户登录时必须重定向到您的身份验证端点,所以第三方应用程序不可能在任何时候访问他们的凭据

然而,没有什么能阻止邪恶应用程序的开发者创建一个虚假表单,要求用户提供敏感信息以便登录,例如电子邮件和密码

在这种情况下,您可以做两件事:

  • 首先,教育您的用户(例如,当他们创建帐户时)不要在您的网站以外的任何其他网站上提供他们的凭据。这通常由银行和保险公司完成
  • 实现为身份验证过程添加另一层安全性。大多数网络公司,如Google或Twitter,允许您在登录时提供常用凭据的同时,要求您使用带外介质验证登录过程。他们通常通过手机短信向您发送PIN码来实现这一点,您必须在网页上输入PIN码才能完成登录过程。 因此,如果有人试图登录到您用户的某个帐户,则该帐户将失败,除非他们也可以访问用户电话

我一直在阅读OAuth,对于它是否是一个好的解决方案,似乎有不同的观点()等等。。我已经看过这个解决方案()了,它看起来不错。所以我仍然不确定该选择什么解决方案,但我已经做得更进一步了。谢谢你的回答!看起来很有趣,它基本上通过二维码交换钥匙对,并且不需要键盘。我会更深入地看一看,谢谢。