【问题标题】:API security questionsAPI 安全问题
【发布时间】:2015-01-28 20:38:23
【问题描述】:

我知道有人就该主题提出了多个问题,但没有人真正回答我的具体问题。

我的应用

我有一个基于 PHP 的 API,可以从我的 MySQL 数据库中检索和发布信息。我用它来检查登录,创建新帐户,还可以从数据库中检索简单数据。我的应用还没有出现在 AppStore 上,而且现在,我的 API 没有任何安全性:这是我制作的第一个 API,我只关注基础知识。现在结束了,我想添加一些安全性。我做了很多研究,oAuth 似乎太过分了,而且对于我在这里尝试做的事情来说太难了。 我对 oAuth 主题感到困惑,关于 2-legged 或 3-legged oAuth。

假设我希望保护这个简单的方案: 1) 用户输入登录信息 2) iOS 应用程序将凭据发送到基于 PHP 的 API 服务器 3) 如果登录凭据正确,API 检查数据库 4) API 返回(在 JSON 中)请求的结果 5)应用程序处理json

这是当前的流程。确保这一点的最简单方法是什么? oAuth 是否值得,或者我可以使用只有我的应用程序和我的 API 知道并且我只需在 POST 中添加的私钥制作一个更简单的手工加密系统吗?

【问题讨论】:

  • 如果您打算自己动手,请查看CHAP,它相当简单,可以避免重放攻击并且很好理解。

标签: php ios security encryption oauth


【解决方案1】:

安全的一般经验法则是采用久经考验的解决方案。因此,使用一些外部登录方法(如 Facebook、Google、Twitter 等)的 oAuth 是一个不错的选择。我想您会发现它实际上比滚动您自己的用户数据库、密码处理、身份验证等工作要少得多。

但是,如果您不热衷于这样做,则很可能有完整的 PHP 框架来增加安全性,例如 PHP-LOGIN。如果您坚持自己做,这里的答案可能会提供一些细节:Developing a secure PHP login and authentication strategy 尽管我强烈建议您不要实施自己的安全解决方案,除非您是该领域的专家。

【讨论】:

  • 感谢瑞克的回答。重点是:我已经拥有自己的网站,拥有自己的数据库和用户,所以我不能跳过它。我将研究 PHP 登录框架。没有特定于 iOS 的内容?谢谢
  • 我明白了。但在那种情况下,我猜你已经有了登录功能?如果它是安全的,您可以简单地在 iOS 设备上使用相同的安全措施,我想您是使用会话令牌还是类似的?
  • 是的,我确实使用了会话令牌登录。我似乎无法将其翻译成 iOS/PHP。我将传递给 PHP 服务器以解密和比较的密钥的加密会有什么问题?手工制作有什么危害?
  • 如果您想通过网络以明文形式发送密码,则必须对其进行加密,即使这样也是有风险的。这里有一些关于密码相关安全性的好读物:stackoverflow.com/a/401684/1091402。关于它在 iOS 上的工作方式,它的工作方式与在浏览器中的工作方式相同,但是您可能需要以稍微不同的方式存储会话令牌。
  • 非常感谢您的见解和帮助
猜你喜欢
  • 2014-07-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-06
  • 2012-11-21
  • 2020-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多