gpt4 book ai didi

ios - iOS 应用程序通过 https 将用户名和密码发送到服务器的安全问题

转载 作者:行者123 更新时间:2023-11-29 11:47:55 30 4
gpt4 key购买 nike

我已根据 Apple 的建议在应用内设置购买收据验证,方法是将收据发送到我的服务器,然后再将其发送到 Apple 的服务器进行验证。我所有的收据处理都是在服务器端处理的,并且运行良好。我的服务器向我的应用发回一个非常模糊的代码,以确认购买是否有效。我在应用程序端使用了一种非常强大的混淆方法来伪装返回代码的内容,使越狱黑客尽可能难以打败它。

问题是我的 php 文件存储在我的网络服务器上的一个受密码保护的文件夹中,并且我担心当应用程序本身具有该目录的用户名和密码嵌入其中时如何认为它是安全的将收据发送到 php 文件开始。

我的应用仅使用服务器进行应用内购买的收据验证。所有其他功能都在应用程序本身中,因此我不会强制每个用户拥有一个具有唯一用户名和密码的帐户。

我正在使用 URLSession 通过 TLS 1.2 https 连接与服务器通信,因此这部分是安全的,但我想不出一种方法来阻止坚定的黑客从应用程序中潜在地提取用户名和密码他们的设备,并可以直接访问我的服务器文件夹。具有这种能力的人可以轻松地修改 php 文件以始终返回指示有效购买的代码。

我确实混淆了应用程序中的用户名和密码,以至于我认为大多数人可能会放弃尝试弄清楚它,但我知道我只是让它更难提取,而不是几乎不可能提取。

对此有什么想法吗?我在网上找到的与此相关的几乎所有内容都与不通过 h​​ttp 传输用户名和密码有关,而不是越狱设备这一更大的问题。

最佳答案

所以我想我已经想出了一个相当安全的解决方案来解决这个问题。非常感谢花时间对此发表评论的人们,因为您的意见肯定很有帮助。

首先,虽然我在 Obj-C/Swift iOS 开发方面有相当多的经验,但服务器端的东西对我来说还是很新鲜,但我学得很快。对我来说,这似乎是一个巨大的灵光一现的时刻,但对于一个资深的 REST/Linux/PHP 专家来说,这似乎是例行公事,所以请耐心等待。

总结挑战:我想将应用内购买收据的 json 表示形式从我的应用发送到服务器上的 .php 文件,以便它可以将其发送给 Apple 进行验证。为了保护那个 .php 文件,我在它的文件夹中放置了一个 .htaccess 文件,要求用户名和密码才能访问它。

NSURLSession 很好地处理了这个问题,但要求我将用户名和密码放在应用程序中……不太好。这就是混淆对话的原因,并让我意识到在将密码硬编码到应用程序中时无法确保密码安全。

然后我意识到我可以将文件放在我的 public_html 文件夹之外(我突然灵光一现),这就是我所做的。所以在 public_html 文件夹中,它也有一个 index.html 文件,我现在有一个非常简单的 .php 文件,它只是调用另一个 .php 文件中的一个函数,它完成与苹果服务器的所有工作,解析响应。当它完成解析后,它会将一个非常晦涩的代码(不是 Apple 返回的广为人知的代码)返回到简单的 .php 文件,该文件又将其返回到我的应用程序。
根据该代码,应用程序将决定是否授予对购买商品的访问权限。

使用服务器端权限,我限制了 public_html 目录中的简单 .php 文件从“世界”读取或写入访问权限,使其仅可执行。因此,虽然如果黑客破解了该应用程序,他们可以快速获取该文件的名称,但这对他们没有好处。我不再需要应用程序中的用户名或密码,并且完成所有工作的“主要”.php 文件位于 public_html 文件夹之外的文件夹中,其权限设置为限制读/写/执行来自“世界”,尽管我认为这是矫枉过正,但我​​还是在其中放置了一个 .htaccess 文件并拒绝了所有内容。

我认为我这里有一个“相当”安全的解决方案,应该可以让临时黑客很难窃取应用内购买,但一如既往,我愿意接受建议,以防我遗漏了什么。

关于ios - iOS 应用程序通过 https 将用户名和密码发送到服务器的安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42599062/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com