我使用SLIM框架在php中设计了API。我可以像这样访问这些API:
http://192.168.1.210/getSchool
此API用于获取有关学校的信息。我在我的Android应用程序中使用这些API。现在我想为我的这些API提供安全保障。所以没有人可以通过身份验证访问这些API意味着只需在地址栏中输入上述URL就无法获得学校列表。
我希望该用户首先使用我的Android应用程序登录,然后他或她可以使用我的api,没有人可以直接访问我的api。
请给我你宝贵的建议。
提前谢谢。
答案 0 :(得分:1)
用户在您的应用程序中注册后,您就可以生成&在数据库中为它们分配一个API密钥(可能是哈希),您可以将其返回到手机中。每当手机向API发送请求时,它也会通过其API密钥发送,您可以根据其数据库条目进行验证。
这也应该通过SSL完成,以避免MITM攻击/查看API密钥。
还有其他可用的方法:Looking for suggestions for building a secure REST API within Ruby on Rails(语言不可知)。
答案 1 :(得分:0)
您应该在每个用户注册并存储在服务器上时为每个用户创建UID和密钥。最初使用https将这些传递给用户。用户将存储这两个值(确保安全地保存密钥)。
当用户想要发送api请求时,他将创建请求URL然后使用密钥+时间戳对其进行哈希处理,并将UID,哈希和时间戳添加到请求并发送到服务器。
服务器提取UID然后从db获取秘密,然后使用密钥+时间戳参数生成请求的散列(没有UID,散列和时间戳)。
如果生成的哈希和来自url匹配的哈希参数继续请求或忽略它。
或者
实施OAuth