【问题标题】:How to make sure only my app can insert data into the DB?如何确保只有我的应用程序可以将数据插入数据库?
【发布时间】:2015-11-02 09:30:37
【问题描述】:

问题

我正在为 iOS 应用程序开发后端。端点之一允许应用程序将数据插入数据库,例如register-user.php

应用程序使用某些参数(例如,用户名和密码)调用 API,服务器执行某些操作(例如,对密码进行加盐和哈希处理),然后将所有内容存储在数据库中。

问题

如何确保只有应用才能真正调用 API 并将数据插入数据库?

我查看了SSL 证书和OAuth2,但它们似乎不适用于这里(除非我深深误解了它们)。

【问题讨论】:

  • 您可以加密流量和应用程序,但最终如果有人想破解您的应用程序并使用 API,他们可能会这样做。 (这也意味着您在应用中拥有的任何密钥都是已知的)
  • 然后在每个 api 调用中传递一个只有应用知道的密钥,在执行之前应该验证。

标签: php ios mysql api oauth-2.0


【解决方案1】:

将一些令牌或 auth/pwd 传递给 api。不是用户的密码,而是您在应用程序中保留的另一个密码。 还需要 HTTPS 来避免嗅探。

这是一道测试题吗?您是第二个提出同样问题的人,而且你们似乎都出于某种未知原因不喜欢 TLS/SSL。

【讨论】:

  • 嗨@Voro,我担心使用 SSL 或任何身份验证令牌的原因是它必须被硬编码到应用程序中,以便如果有人可以访问应用程序的源代码该人还可以向后端发送有效的 API 请求。
  • 我理解您对硬编码令牌的担忧。但是,它与 SSL/TLS 无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-10
  • 1970-01-01
  • 1970-01-01
  • 2016-10-23
相关资源
最近更新 更多