繁体   English   中英

RESTful API身份验证和安全性

[英]RESTful API Authentication & Security

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

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

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

任何建议都非常感谢。

您担心会反编译您的应用程序是正确的。 代码和字符串以明文形式存储。 实际上,这很简单。

我听说有人查看了两个应用程序:一个包含电子邮件服务密码和明文用户名,对垃圾邮件发送者非常有用。 另一个则公开了其“随机”号码算法,使黑客能够生成当今的“随机”号码,并使用公共交通设施免费乘车。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM