RESTful API身份验证&安全

时间:2016-01-10 19:46:16

标签: php api rest security

我正在开发一个Android和iOS应用程序,它将使用我在单独服务器上开发的RESTful API。应用程序将简单地在端点处戳以更新数据库中的数据并在需要时检索信息。我的问题不是这样做,API的架构已经设置我只需要考虑实现它的最安全的方法。

我有一个API密钥系统,要求将API的任何使用与请求配对,这将阻止没有密钥的任何人访问API。这很好用,但我担心那些更有决心突破系统的人。特别是在Android方面,可以反编译应用程序,并且可以查看(某些)代码。我很确定可以查看字符串所以我担心如果有人反编译应用程序,他们将获得API密钥并能够访问API。

我正在寻找使API更安全的建议。我在更新信息时已经考虑过将另一个唯一值与API Key配对,但我不确定这是否也能正常工作。

任何建议都非常感谢。

1 个答案:

答案 0 :(得分:0)

你担心你的应用程序可以被反编译你是对的。代码和字符串以明文形式存储。事实上,这是相当微不足道的。

我听说有人看了两个应用程序:一个包含明文的电子邮件服务密码和用户名,对垃圾邮件发送者非常有用。另一个有其随机的"数字算法暴露出来,允许黑客生成今天随机的#34;乘坐公共交通工具免费乘坐。

您可以通过以下方式提高标准:

  • 使用工具模糊代码。有些工具会提供加密字符串的功能。
  • 每次新安装时使用新的加密密钥手动加密应用程序中的敏感字符串,拆分加密密钥并将其隐藏在几个不同的位置,例如:部分代码,部分数据库,部分操作系统,并将ACL应用于外部位置
  • 使用传输安全性(例如TLS)来降低中间人攻击的风险
  • 在服务器端使用API​​速率限制器
  • 介绍地理位置服务,以查看是否同时在不同位置使用相同的API密钥