我看到 GET
和 POST
请求中都完成了基本身份验证。
一方面,我认为浏览器缓存 GET
请求可能是一个问题,但另一方面:POST
较大,但鼓励用于传递敏感信息。
我不是问 GET
和 POST
请求之间的区别,而是问应该使用哪一个进行基本身份验证。 GET
是否只能与 HTTPS 一起使用?是否应该始终使用 POST
?
我的问题是应该使用哪一个?哪一种是更好的做法?
最佳答案
Should
GET
be used only with HTTPS? ShouldPOST
be used always?
通过网络发送/请求敏感信息时,无论使用哪种 HTTP 方法,都必须使用 HTTPS。 HTTPS 确保主体和 header 均已加密。
请记住,敏感信息(例如密码和支付卡号)绝不能在 URL 中发送:请求的 URL 可能会被服务器和代理记录;如果浏览器请求该 URL,则该 URL 将进入浏览器历史记录。然后你就会遇到安全漏洞。
Which one should be used for Basic authentication?
Basic身份验证方案不依赖于任何特定的 HTTP 方法。每个HTTP method有自己的语义,因此您可能需要不同的方法来设计您的 API。这些方法中的每一个都可能执行需要身份验证和/或授权的操作。
HTTP 身份验证框架,如 RFC 7235 中所述。 ,定义凭证应在 Authorization
中发送 header ,因此它们可以应用于任何 HTTP(S) 请求。
还需要强调的是,身份验证方案(例如 Basic)旨在应用于保护空间,通常称为领域(有关详细信息,请参阅我的 previous answer )。
关于java - 基本身份验证请求应该是 POST 还是 GET?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55470970/