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

时间:2019-04-02 09:12:04

标签: java rest jax-rs basic-authentication restful-authentication

我已经看到GETPOST请求中都完成了基本身份验证。

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

我不是要问GETPOST请求之间的区别,但应使用哪个请求进行基本身份验证。 GET是否仅应与HTTPS一起使用?是否应始终使用POST

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

  

GET仅应与HTTPS一起使用吗?应该始终使用POST吗?

通过网络发送/请求敏感信息时,无论使用哪种HTTP方法,都必须使用

HTTPS。 HTTPS确保 正文和标头均已加密。

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

  

基本身份验证应使用哪个?

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

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

同样重要的是要强调指出,身份验证方案(例如基本方案)应应用于通常称为领域保护空间(请参阅我的previous answer有关详细信息)。