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