这种编码方法是否可以利用?

时间:2019-06-28 18:14:37

标签: ios security secret-key

我是应用程序开发的新手,目前正在使用xcode中的swift开发ios应用程序。在应用开发过程中,引起我注意的是,我不应该将诸如API机密之类的敏感信息存储为局部变量。我假设这是因为有查看应用程序代码的方法。

我正在开发的应用程序没有帐户或用户登录,并且我不希望这样做。为简单起见,我将以这种方式进行解释:

用户可以使用该用户指定的特定房间ID来创建“房间”。用户的设备具有关联的ID,该ID已保存到数据库中,以显示创建的房间归该用户所有。

被指定为客人的另一个用户可以使用所述房间ID加入所述房间。当他们尝试加入会议室时,将根据数据库检查其设备ID,并指定一个本地布尔值,指出此用户是否为主机。

无论用户是否是主机,segue都将开始到另一个视图控制器,并且也会发送布尔值。从这一点开始,只有布尔值指定用户是主机时,才调用函数和语句,仅允许主机具有某些权限。

我担心的是,有某种方法可以利用此方法,以便来宾可以以某种方式更改或设置本地布尔值,以表示不成为宾客的主机。我应该担心这是一个潜在的安全问题吗?除了设备专用的ID(在数据库中保存或检查的设备专用ID)之外,没有在此应用程序中保存或使用主机或来宾的个人信息,但我仍然希望只允许主机特定的房间权限的安全性。

1 个答案:

答案 0 :(得分:3)

  

我认为这是因为存在查看应用程序代码的方法。

不太准确,但是最好假设这是对的。您的确切源代码不可用,但是可以提取应用程序中存储的任何数据,并且可以对应用程序实现的任何算法进行逆向工程。您无法在交付给用户的应用程序中隐藏任何内容。

  

我担心的是,有某种方法可以利用此漏洞,以便来宾可以以某种方式更改或设置本地布尔值,以表示他们不是托管者。

这是真的,但并不是真正的主要安全问题。基本的担心是服务器永远不能信任应用程序。我可以自由创建自己的应用程序,该应用程序连接到您的服务器并发送我想要的任何内容。服务器必须对此具有弹性。因此,必须在服务器上执行“房间所有者”检查之类的操作。您不能依靠执行它们的应用程序。您必须假定该应用程序受其用户完全控制。鉴于此,您会看到哪些安全问题?