根据this post,可以反编译iOS应用程序。
如何防止攻击者获取对我的AWS DynamoDB数据库的访问权限?如Amazon developer guide所示,只需将访问密钥打开即可,这似乎不太安全。
我认为我可以使用钥匙串存储密钥,但我觉得有一种简单的方法可以让一个有动力的攻击者通过它,因为他们有应用程序的汇编源代码。
目前,我使用Amazon Cognito进行连接。我必须用来连接的是身份ID和角色名称。我没有看到任何阻止攻击者获取这些值并连接到数据库的事情。
例如,是什么阻止攻击者反编译Facebook iOS应用代码并删除所有用户?
如何防止攻击者反编译我的iOS应用程序并访问数据库访问密钥,或至少阻止他们造成任何重大损失,例如删除用户?
答案 0 :(得分:5)
根据我公认的有限经验,我说一个真正有动力的攻击者总是能够检索用于访问数据库的凭据,无论您对可执行文件做什么。但是,我会质疑为什么应用程序需要首先直接访问您的数据库。
保护服务器端数据的常用方法是使用Web服务访问它。应用程序联系Web服务请求,服务联系人db,获取数据,然后将其发回。由于Web服务和数据库都托管在您的服务器上,并且只有Web服务需要直接访问您的数据库,因此无需在您的应用程序中存储数据库访问信息。问题解决了。
答案 1 :(得分:0)
您可以使用SQLCipher并将身份验证的userToken
和/或userId
用作密码密钥。