基本认证请求应该使用POST还是GET方法?

6

我曾经看到基本认证在GETPOST请求中都可以使用。

一方面,我想浏览器缓存GET请求可能会成为一个问题,但另一方面:POST更大,但鼓励用于传递敏感信息。

我不是在问GETPOST请求之间的区别,而是应该使用哪个来进行基本认证。 GET只应该与HTTPS一起使用吗? POST是否始终使用?

我的问题是应该使用哪一个?哪一个是更好的实践?


1
一篇好的阅读材料:哪种更安全:GET还是POST - Safwan Shaikh
2个回答

11

GET请求是否只能使用HTTPS?POST请求是否总是要使用?

无论使用何种HTTP方法发送/请求敏感信息,都必须使用HTTPS。HTTPS 确保请求体和头部都被加密

请记住,敏感信息(如密码和付款卡号)永远不应该在URL中发送:请求的URL可能会被服务器和代理记录;如果URL被浏览器请求,则URL将进入浏览器历史记录。这样就会出现安全漏洞。

基本认证应该使用哪个方法?

Basic认证方案不绑定到任何特定的HTTP方法。每个HTTP方法都有自己的语义,因此您可能需要不同的方法来设计API。而且每个这些方法可能执行需要身份验证和/或授权的操作。

RFC 7235中描述的HTTP身份验证框架定义,凭据应该在Authorization头中发送,以便可以将它们应用到任何HTTP(S)请求。

需要强调的是,认证方案(比如基本认证)应用于通常称为“领域”(请参见我之前的回答了解详情)的保护空间


你的意思是“无论如何都使用HTTP(S)吗?”? - MOTIVECODEX
1
@MOTIVECODEX 噢耶!修复好了!谢谢:) - cassiomolin
基本上,只要使用HTTPS并且令牌在授权标头中发送,使用GET或POST进行身份验证请求都是可以的? - Rod Talingting

6

在HTTP协议中,GET和POST方法都用于从客户端向服务器传输数据,但是它们之间的主要区别在于GET方法将请求参数附加在URL字符串中,而POST方法将请求参数放在消息正文中,使其更安全地从客户端向服务器传输数据。

因此,它取决于您的需求。希望对您有所帮助!


如果你愿意的话,你可以将数据放在GET请求的主体中吗? - palapapa
如果你愿意,你可以通过GET请求将数据放在请求体中吗? - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接