我使用Lumen构建了一个微API,它只有一个单一的GET方法,它从数据库返回JSON数据。
我添加了一个简单的中间件,强制GET请求有"?key = [secretPassword]"在URL中,只有我给密钥的人才能执行GET。
这是我的第一个API - 这是否足够安全措施?
使用更多信息进行编辑: 数据不敏感,我不会在乎人们是否发现它,但我会将密钥移到标题中以获得额外的保护,而我正在使用HTTPS。
答案 0 :(得分:3)
我添加了一个简单的中间件,强制GET请求有"?key = [secretPassword]"在URL中,只有我给密钥的人才能执行GET。
很难给出一个完整的答案,因为有一些未知数,但是我试了一下。
关于这种方法的一些注意事项:
在标题中你也会问:
是否需要对可公开访问的REST API进行身份验证
嗯......取决于你想要保护自己的东西?如果有人可以调用API,这有关系吗?然后你可能不需要auth。
答案 1 :(得分:2)
在URL上输入密码即使在HTTPS流量上也会泄露密码。请改用Authorization标头。
答案 2 :(得分:1)
如果不是太多开销,你可以在你的API前放置一个API网关(Kong,Tyk,ApiGee等),这将使你能够灵活地处理任何类型的身份验证或更重要的是时间到了。
通常,根据信息的敏感性或商业案例,GET API有时也会保持开放状态。