Tips designing Restful API - 这个认证逻辑合理吗?
Tips designing Restful API - Is this authentication logic reasonable?
我正在努力为服务提供 REST API。我正在努力解决的一个问题是身份验证方面。我检查了其他一些库,发现一个策略如下:
服务器端:
app.post("get_dogs"){
SecretKey = Authorization Header
if SecretKey in Database{
dogs = Database[SecretKey]
return dogs;
}
return "Not found!!";
}
客户端:
request = post("www.random.com/get_dogs")
request.authentication_header = SECRET KEY
response = request.send()
我的问题是:这种技术安全吗?我在身份验证 header 中发送密钥。如果有人看到了密钥,那么他们就可以访问该用户的帐户。一种解决方案可能是散列,但话又说回来 - 我不太确定。
如有任何建议,我们将不胜感激!
使用像 OAuth2 这样的标准来验证请求。不要发明你自己的。有关该问题的更详细讨论,请参阅 http://soabits.blogspot.dk/2014/02/api-authentication-considerations-and.html。
我认为这个 post 可以帮助您 : https://templth.wordpress.com/2015/01/05/implementing-authentication-with-tokens-for-restful-applications/。它描述了在 RESTful 应用程序中实现安全性的不同方法。
希望对您有所帮助,
蒂埃里
我正在努力为服务提供 REST API。我正在努力解决的一个问题是身份验证方面。我检查了其他一些库,发现一个策略如下:
服务器端:
app.post("get_dogs"){
SecretKey = Authorization Header
if SecretKey in Database{
dogs = Database[SecretKey]
return dogs;
}
return "Not found!!";
}
客户端:
request = post("www.random.com/get_dogs")
request.authentication_header = SECRET KEY
response = request.send()
我的问题是:这种技术安全吗?我在身份验证 header 中发送密钥。如果有人看到了密钥,那么他们就可以访问该用户的帐户。一种解决方案可能是散列,但话又说回来 - 我不太确定。
如有任何建议,我们将不胜感激!
使用像 OAuth2 这样的标准来验证请求。不要发明你自己的。有关该问题的更详细讨论,请参阅 http://soabits.blogspot.dk/2014/02/api-authentication-considerations-and.html。
我认为这个 post 可以帮助您 : https://templth.wordpress.com/2015/01/05/implementing-authentication-with-tokens-for-restful-applications/。它描述了在 RESTful 应用程序中实现安全性的不同方法。
希望对您有所帮助,
蒂埃里