POST是否足够安全以发送登录凭据?

或者是必须的SSL连接?

有帮助吗?

解决方案

SSL是必须的。 POST不比GET更安全,因为它<!>#8217; s也发送未加密的。 SSL将覆盖整个HTTP通信并加密客户端和服务器之间的HTTP数据发送。

其他提示

<shameless plug>我有博文详细说明HTTP请求的外观以及GET请求与POST请求的比较。为了简洁起见,GET:

GET /?page=123 HTTP/1.1 CRLF
Host: jasonmbaker.wordpress.com CRLF
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1 CRLF
Connection: close CRLF

和POST:

POST / HTTP/1.1 CRLF
Host: jasonmbaker.wordpress.com CRLF
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-us) AppleWebKit/525.27.1 (KHTML, like Gecko) Version/3.2.1 Safari/525.27.1 CRLF
Connection: close CRLF
CRLF
page=123

(CRLF只是换行符)

正如您所看到的,从如何形成请求的角度来看,唯一的区别是POST请求使用单词POST,表单数据在请求正文中与URI发送。因此,使用HTTP POST是默默无闻的安全性。如果要保护数据,则应使用SSL。

*请注意 其他差异

这取决于你的情况,截取证书需要花多少钱呢?

如果它只是登录软件Q + A网站,则可能没有必要使用SSL,如果它是在线银行网站,或者您存储信用卡数据,那么它就是。
这是一项业务而非技术决策。

HTTP POST未加密,可以被网络嗅探器拦截,也可以被代理拦截,或者泄露在具有自定义日志记录级别的服务器日志中。是的,POST比GET更好,因为POST数据不是由代理或服务器 usualy 记录的,但它不是 secure 。 要保护密码或其他机密数据,您必须在POST之前使用SSL或加密数据。另一种选择是在浏览器中使用摘要式身份验证(请参阅RFC 2617)。请记住,(本地增加的)加密不足以防止重放攻击,您必须在加密之前连接一个随机数和其他数据(例如,领域)(参见RFC 2617,了解如何在摘要验证中完成)。

SSL必须:)

HTTP Post以纯文本格式传输。例如,下载并使用Fiddler来监视HTTP流量。您可以轻松地在那里(或通过像WireShark这样的网络流量监控器)查看整个帖子

不安全。 POST可以像GET一样轻松嗅探。

不...... POST根本不够安全。 SSL是必须的。

POST仅有效地隐藏查询字符串中的参数。任何查看浏览器和终点之间流量的人都可以选择这些参数。

最安全的方法是根本不发送凭据。

如果您使用摘要式身份验证,则SSL 必须。

(注意:我并不是说通过HTTP进行摘要式身份验证总是比通过HTTPS使用POST更安全。)

POST是纯文本。

必须建立安全连接。

这就是为什么它被称为安全连接。

不,请使用SSL。

使用POST时,除非使用SSL,否则仍会以纯文本形式提交值。

HTTP GET和HTTP POST之间的唯一区别是数据编码的方式。在这两种情况下,它都以纯文本形式发送。

为了为登录凭据提供任何类型的安全性,必须使用HTTPS。

您也不需要昂贵的证书来提供HTTPS。有许多提供商将以约20美元的价格发行非常基本的证书。更昂贵的包括身份验证,这对电子商务网站来说更为重要。

单独的POST请求并不安全,因为所有数据都是<!>“travel <!>”;用纯文本。

您需要SSL才能确保安全。

如果使用未加密的HTTP连接,则POST数据以纯文本格式发送。 如果这足够安全取决于您的使用(提示:它不是)。

如果服务器,客户端计算机和它们之间的所有机器都是受控的,完全受信任的网络的一部分,这可能没问题。

在这些非常有限的情况之外(有时甚至在其中),纯文本身份验证会遇到麻烦。

请看这篇好文章:

防止恶意POST请求

https://perishablepress.com/protect-post-requests/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top