【问题标题】:Tips designing Restful API - Is this authentication logic reasonable?设计 Restful API 的技巧 - 这个认证逻辑合理吗?
【发布时间】:2015-02-15 17:42:42
【问题描述】:

我正在努力为服务提供 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()

我的问题是:这种技术安全吗?我在身份验证标头中发送密钥。如果有人看到了密钥,那么他们就可以访问该用户的帐户。一种解决方案可能是散列,但话又说回来 - 我不太确定。

任何建议将不胜感激!

【问题讨论】:

  • 身份验证密钥基本上是一个密码,因此“保持在线加密”和“不要与不受信任的参与者共享”的基本规则仍然适用。
  • 有趣。我看到一项服务使用我提到的方法。相反,发送 JWT 令牌作为身份验证标头可能更合适。
  • @unknown:取决于令牌的用途以及您拥有的客户端类型。有关一些想法/解释,请参阅此:stackoverflow.com/questions/20870779/…
  • 有趣。感谢您的链接。

标签: api rest


【解决方案1】:

使用 OAuth2 等标准对请求进行身份验证。不要发明你自己的。有关该问题的详细讨论,请参阅 http://soabits.blogspot.dk/2014/02/api-authentication-considerations-and.html

【讨论】:

    【解决方案2】:

    我认为这篇文章可以帮助你:https://templth.wordpress.com/2015/01/05/implementing-authentication-with-tokens-for-restful-applications/。它描述了在 RESTful 应用程序中实现安全性的不同方法。

    希望对你有帮助,

    蒂埃里

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-19
      • 2011-10-25
      • 2017-01-02
      • 1970-01-01
      • 2017-07-15
      • 1970-01-01
      • 2012-01-04
      • 1970-01-01
      相关资源
      最近更新 更多