我曾经看到基本认证在GET
和POST
请求中都可以使用。
一方面,我想浏览器缓存GET
请求可能会成为一个问题,但另一方面:POST
更大,但鼓励用于传递敏感信息。
我不是在问GET
和POST
请求之间的区别,而是应该使用哪个来进行基本认证。 GET
只应该与HTTPS一起使用吗? POST
是否始终使用?
我的问题是应该使用哪一个?哪一个是更好的实践?
我曾经看到基本认证在GET
和POST
请求中都可以使用。
一方面,我想浏览器缓存GET
请求可能会成为一个问题,但另一方面:POST
更大,但鼓励用于传递敏感信息。
我不是在问GET
和POST
请求之间的区别,而是应该使用哪个来进行基本认证。 GET
只应该与HTTPS一起使用吗? POST
是否始终使用?
我的问题是应该使用哪一个?哪一个是更好的实践?
GET
请求是否只能使用HTTPS?POST
请求是否总是要使用?
无论使用何种HTTP方法发送/请求敏感信息,都必须使用HTTPS。HTTPS 确保请求体和头部都被加密。
请记住,敏感信息(如密码和付款卡号)永远不应该在URL中发送:请求的URL可能会被服务器和代理记录;如果URL被浏览器请求,则URL将进入浏览器历史记录。这样就会出现安全漏洞。
基本认证应该使用哪个方法?
Basic认证方案不绑定到任何特定的HTTP方法。每个HTTP方法都有自己的语义,因此您可能需要不同的方法来设计API。而且每个这些方法可能执行需要身份验证和/或授权的操作。
在RFC 7235中描述的HTTP身份验证框架定义,凭据应该在Authorization
头中发送,以便可以将它们应用到任何HTTP(S)请求。
需要强调的是,认证方案(比如基本认证)应用于通常称为“领域”(请参见我之前的回答了解详情)的保护空间。
在HTTP协议中,GET和POST方法都用于从客户端向服务器传输数据,但是它们之间的主要区别在于GET方法将请求参数附加在URL字符串中,而POST方法将请求参数放在消息正文中,使其更安全地从客户端向服务器传输数据。
因此,它取决于您的需求。希望对您有所帮助!