【发布时间】:2012-11-22 07:44:16
【问题描述】:
我是一名初学者网络开发人员,我对自己开发的 API 的安全性有些怀疑。这是一个简单的网络服务,需要身份验证才能访问/修改数据。
我想知道通过 HTTP 对用户进行身份验证的最佳做法是什么。
目前我的应用是这样工作的:
用户通过需要用户名和密码的 API 请求 (POST) 进行身份验证。响应包含有关用户的信息和一个 TOKEN,它将在未来用于进一步的请求。
我的担忧:我不知道身份验证请求是否应该是 POST。这听起来更像是一个 GET,因为 POST 应该创建一些东西(至少这是 Ruby on Rails 中的约定)。然后,即使使用 POST 或 GET,在信息传输过程中信息仍然是“可见的”。我听说了一些关于 HTTPS 的事情 - 它是如何解决问题的?
令牌在用户创建时生成 - 并且在时间上保持不变。这很糟糕吗?是否应该在“注销”后再次生成令牌?我见过使用 API_KEY 和令牌进行身份验证的 API。它是如何工作的?
我有一些 GET 请求来检索有关某事的信息。通过此请求,我将从身份验证请求中检索到的令牌作为参数传递。这个可以吗?我的意思是令牌是敏感信息。
我在哪里可以找到有关我的这些问题的更多信息(书籍、文章、w/e)?
【问题讨论】:
标签: api http authentication https security