【发布时间】:2016-03-23 21:08:31
【问题描述】:
我一直在思考这个问题,但它让我头疼,假设我们有一个网站、一个移动应用程序和一个数据库。
通常,当我们开发网站时,我们会假装将我们的数据库凭据存储在配置文件中,并将网站直接连接到数据库而不使用multi-tier architecture,但在移动应用程序中例如 Android 或 iOS 此应用程序可以是 engineer reversed,这意味着 存在暴露您的数据库凭据的风险。
所以我开始思考这个multi-tier architecture 并思考 Facebook 和其他社交网络是如何工作的,他们通常制作一个 API 并使用大量 HTTP 请求。
通常社交网络 API 有一个 app_id 和一个 secret_key,这个密钥将用于提高应用程序的安全性,但我正在考虑 我如何将这些密钥存储在我的应用程序中,因为我会回到讨论的开头,如果我要使用 Java,我可以使用 Java Preference 类,但我看到这也不安全在this question 中,另外我需要确保我的HTTP 请求是CSRF 安全的。
那么,如何将这些密钥存储在我的应用程序中?最好的方法是什么,因为hard-codding 这是不可能的。
【问题讨论】: