iOS连接到数据库的正确架构?

我是一名正在开发创建移动(iOS / Android)应用程序的Web开发人员。

因此,我想要了解的是我应该如何构建移动应用程序以访问(发布/更新/删除)存储在中央服务器上的数据。

为了便于说明,假设我正在创建一个移动配方应用程序(名为“MyRecipeApp”)。 我想与MyRecipeApp的其他食谱用户分享的一些食谱,以及一些我希望保密的食谱。

为了共享配方,所有配方(私有和可共享)都存储在集中式(服务器)数据库中,MyRecipeApp访问该数据库以获取该信息。

因此,我有几个问题:

  1. 使用MyRecipeApp,如何访问数据库? 我是否可以公开访问MyRecipeApp可以与数据库通信的数据库? 如果是这样,那似乎是不安全的。

  2. 我是否将SQL硬编码到MyRecipeApp(例如SELECT * FROM RECIPES WHERE USER =“John Smith”)来访问数据库以获取食谱? 如果是这样,那似乎不安全,因为某人可能只是破解我的移动应用程序并更改SQL以获取任何信息。

  3. 您是否将每次获取的用户名/密码发送到数据库? 如果是这样,您如何加密数据库和MyRecipeApp之间的流量。

  4. 我还应该考虑如何构建移动应用程序?

  1. 通过API(可能是宁静的HTTP API)连接。
  2. 不要硬编码SQL。 相反,进行API调用,传递参数。
  3. 是,向每个请求发送身份validation信息并使用HTTPS,或仅在第一个请求时发送用户名和密码,并获取会话令牌并在后续请求中使用该令牌,但仍使用HTTPS。
  4. 考虑以JSON格式发送和接收数据。