我已经看到GET
和POST
请求中都完成了基本身份验证。
一方面,我认为浏览器缓存GET
请求可能是一个问题,但另一方面:POST
较大,但鼓励提供敏感信息。
我不是要问GET
和POST
请求之间的区别,但应使用哪个请求进行基本身份验证。 GET
是否仅应与HTTPS一起使用?是否应始终使用POST
?
我的问题是应该使用哪一个?哪个是更好的做法?
答案 0 :(得分:1)
GET和POST方法都用于通过HTTP协议将数据从客户端传输到服务器,但是POST和GET方法之间的主要区别在于GET带有附加在URL字符串中的请求参数,而POST带有消息正文中的请求参数,这使其更加使用HTTP协议从客户端向服务器传输数据的安全方法。 因此,这取决于您的需求。 希望对您有帮助!
答案 1 :(得分:1)
通过网络发送/请求敏感信息时,无论使用哪种HTTP方法,都必须使用
GET
仅应与HTTPS一起使用吗?应该始终使用POST
吗?
HTTPS。 HTTPS确保 正文和标头均已加密。
请记住,绝不能在URL中发送敏感信息(例如密码和支付卡号):服务器和代理可能会记录所请求的URL。如果浏览器请求该URL,则该URL进入浏览器历史记录。然后您就有了安全漏洞。
基本身份验证应使用哪个?
Basic身份验证方案未绑定到任何特定的HTTP方法。每个HTTP method都有自己的语义,因此您可能需要不同的方法来设计API。而且这些方法中的每一个都可能执行需要身份验证和/或授权的操作。
RFC 7235中描述的HTTP身份验证框架定义了凭据应在Authorization
标头中发送,以便可以将其应用于任何HTTP(S)请求。
同样重要的是要强调指出,身份验证方案(例如基本方案)应应用于通常称为领域的保护空间(请参阅我的previous answer有关详细信息)。