基本身份验证请求应该是 POST 还是 GET?

Should a Basic authentication request be POST or GET?

我已经看到在 GETPOST 请求中都进行了基本身份验证。

一方面,我认为浏览器缓存 GET 请求可能是个问题,但另一方面:POST 更大,但鼓励提供敏感信息。

我不是在问 GETPOST 请求之间的区别,而是应该将哪一个用于基本身份验证。 GET 应该只与 HTTPS 一起使用吗?应该始终使用 POST 吗?

我的问题是应该使用哪一个?哪一个是更好的做法?

GET 和POST 方法都是在HTTP 协议中从客户端向服务器传输数据,但是POST 和GET 方法的主要区别在于GET 携带请求参数附加在URL 字符串,而 POST 在消息正文中携带请求参数,这使得在 http 协议中从客户端到服务器传输数据的方式更加安全。 所以这取决于你的需要。 希望对您有所帮助!

Should GET be used only with HTTPS? Should POST be used always?

当通过网络传输 sending/requesting 敏感信息时,无论 HTTP 方法如何,都必须使用 HTTPS。 HTTPS 确保 body 和 header 都被加密。

请记住,绝不能在 URL 中发送敏感信息(例如密码和支付卡号):所请求的 URL 可能会被服务器和代理记录;如果浏览器请求 URL,则 URL 会进入浏览器历史记录。然后你就有了安全漏洞。

Which one should be used for Basic authentication?

Basic authentication scheme is not tied to any particular HTTP method. Each HTTP method 有自己的语义,因此您可能需要不同的方法来设计您的 API。这些方法中的每一个都可能执行需要身份验证 and/or 授权的操作。

RFC 7235, defines that credentials should be sent in the Authorization header 中描述的 HTTP 身份验证框架,因此它们可以应用于任何 HTTP(S) 请求。

同样重要的是要强调身份验证方案(例如 Basic)旨在应用于 保护空间 ,通常称为 领域 (详见我的 previous answer)。