Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.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 如何将数据安全地从网站传递到应用程序?_Android_Swift_Iphone_Web Services - Fatal编程技术网

Android 如何将数据安全地从网站传递到应用程序?

Android 如何将数据安全地从网站传递到应用程序?,android,swift,iphone,web-services,Android,Swift,Iphone,Web Services,我有一个android和iPhone应用程序,这些应用程序正在获取数据 根据他们在应用程序上选择的一些条件,从我的网站上删除 我创建了一个不向公众开放的安全url(在我们的网站上找不到),并使用了我认为足够安全的哈希代码。类似于下面的内容 他们在应用程序中选择的额外条件将作为查询参数附加到同一url 根据条件,php文件将以json格式输出数据 然而,我最近发现有人创建了完全相同的应用程序,并实际从我的服务器和我创建的秘密url获取数据。我之所以知道这一点,是因为我在秘密的get_data.p

我有一个android和iPhone应用程序,这些应用程序正在获取数据 根据他们在应用程序上选择的一些条件,从我的网站上删除

我创建了一个不向公众开放的安全url(在我们的网站上找不到),并使用了我认为足够安全的哈希代码。类似于下面的内容

他们在应用程序中选择的额外条件将作为查询参数附加到同一url

根据条件,php文件将以json格式输出数据

然而,我最近发现有人创建了完全相同的应用程序,并实际从我的服务器和我创建的秘密url获取数据。我之所以知道这一点,是因为我在秘密的get_data.php页面上做了一些更改,这些更改反映在他们的应用程序上


我不知道他们从谁那里获得了我的url,有没有办法创建一种更安全的方法将数据从我的web服务器传递到应用程序,这样其他人就不会窃取我的数据?

你应该使用或创建一个API。你不能依赖你的URL,因为它可以被记录在日志中。

此外,您需要了解,您在应用程序中访问的每个端点本质上都是公共的。每个人都可以访问服务器的端点,就像您的移动应用程序(由您创建)一样。但是,通过在端点上添加授权要求,可以使服务器的端点受到保护

授权 有很多授权协议,OAuth、OAuth2.0、基本身份验证(如电子邮件和密码等凭据),等等。所有这些都只是授予任何人访问端点中资源的方法。把它想象成你家大门上的一把锁,只有带着钥匙的人才能进入你的房子,把你弄得一团糟

请记住,这是授权协议的一个非常简化的版本,它实际上是如何保护访问密钥/令牌的分发的

其他问题和答案
  • 我试图从我的android手机生成日志文件,但似乎无法从日志文件中找到.php文件。有人可以解码android应用程序或iphone应用程序,以便查看我的源代码吗

    回答:我总是认为客户端(移动应用、网络应用前端等)发生的一切都是我无法控制的。这意味着任何人都可以访问、阅读、调整我的客户端应用程序。话虽如此,我认为确实有可能有人破解你的android/iPhone应用程序(获取源代码)来获取你的客户端密钥

  • 这(OAuth/basic)有什么帮助?当然,创建另一个应用程序的人也会添加OAuth/basic身份验证,不是吗

    为了让其他人访问受保护的端点,他们需要访问原始应用程序的访问令牌。最重要的是,他们需要快速完成,因为通常访问令牌的时间很短

  • 如果他们能够看到我的代码,那么使用基本Auth或OAuth键是否有效

    是和否,取决于您的实现,攻击者可能会破解您的应用程序,并以某种方式从错误做法中获取用户的凭据或令牌


  • 您好,有没有一种不需要用户输入用户名和密码的方法?在应用程序中,我不要求用户输入任何信息。我希望用户体验尽可能简单。是的,这门课程将介绍它。您需要的是一个API密钥,用于从应用程序对后端进行API调用。这个键是一个常量,不需要更改。我试图从android手机生成日志文件,但似乎无法从日志文件中找到.php文件。有人可以解码android应用程序或iphone应用程序,以便查看我的源代码吗?这会有什么帮助?当然,创建另一个应用程序的人也会添加OAuth/basic身份验证,不是吗?他们可以用来监视来自应用程序的网络呼叫