Https HTTP:为什么在get请求中发送用户名和密码是错误的?

Https HTTP:为什么在get请求中发送用户名和密码是错误的?,https,http-headers,http-post,http-get,Https,Http Headers,Http Post,Http Get,一般做法是,当您登录或执行其他需要您的用户名和密码的操作时,将其发送到post请求的正文中。此外,为了增加安全性,还应使用https 在get请求中,这些参数作为URL的一部分发送。但据我所知,在https中,主体和头都是加密的 所以从理论上讲,无论您使用https post还是get进行发送,您的数据都是安全的…,在一种情况下,攻击者将不得不对您的头和其他身体进行解密 所以我的问题是,如果这都是真的,那么post如何更安全呢?同样的原因是您在密码输入字段中显示*** 如果您通过GET发送凭据,

一般做法是,当您登录或执行其他需要您的用户名和密码的操作时,将其发送到post请求的正文中。此外,为了增加安全性,还应使用https

在get请求中,这些参数作为URL的一部分发送。但据我所知,在https中,主体和头都是加密的

所以从理论上讲,无论您使用https post还是get进行发送,您的数据都是安全的…,在一种情况下,攻击者将不得不对您的头和其他身体进行解密


所以我的问题是,如果这都是真的,那么post如何更安全呢?

同样的原因是您在密码输入字段中显示
***


如果您通过GET发送凭据,任何查看用户的人都可以在URL栏中看到密码(或者密码的哈希,具体取决于您的登录方式)。

在GET请求中添加内容的要点是能够将结果添加到书签中。这对搜索结果很有用,而对登录请求则不然。从理论上讲,共享该URL将允许任何人使用您的用户名和密码登录。

GET记录在浏览器的历史记录中。有人可能会查看您的冲浪历史记录并查看您的密码。

除了其他人已经编写的内容之外,还有一点是,在Web服务器日志文件中,通常会记录整个url,因此任何有权访问日志文件的人都可以读取登录凭据。此外,如果页面上有一些流量分析工具(比如google analytics或其他),那么调用url也会在那里报告->这些人也可以读取登录凭据(甚至可能在流量分析中显示)

通常,POST用于发送数据或创建(在rest中)。在登录过程中,此操作以创建会话的方式完成。我不认为使用GET是错误的或“更”不安全。此外,在许多系统中,用户名/密码以编码的标题发送。但是,如果您要传递几个请求用户名和密码来检索数据,我认为您的api中有些错误