HTTP POST 的安全性如何?

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

还是 SSL 连接是 必须的

89398 次浏览

SSL 是必须的。

POST 方法并不比 GET 更安全,因为它也可以通过网络进行未加密的发送。

SSL 将覆盖整个 HTTP 通信,并对客户机和服务器之间传输的 HTTP 数据进行加密。

必须使用 SSL:)

HTTP Post 以纯文本传输。例如,下载并使用 Fiddler 来监视 HTTP 流量。你可以很容易地在那里看到整篇文章(或者通过网络流量监视器,比如 WireShark)

不... POST 根本不够安全。必须使用 SSL。

POST 只能有效地隐藏查询字符串中的参数。这些参数仍然可以被任何人在浏览器和终点之间的流量中发现。

它是不安全的。 POST 可以像 GET 一样容易被嗅探。

这取决于你的情况,拦截凭证要花多少钱?

如果只是登录到一个软件 Q + A 站点,那么 SSL 可能没有必要,如果它是一个在线银行站点或者你存储信用卡数据,那么 SSL 就是必要的。
这是生意,不是技术决定。

POST 是明文。

安全连接是必须的。

所以才叫安全连接。

仅 POST 请求是不安全的,因为所有数据都以纯文本形式“传输”。

你需要 SSL 来确保安全。

不,使用 SSL。

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

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

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

在这些非常有限的情况之外(有时甚至在这些情况之内) ,纯文本身份验证是自找麻烦。

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

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

提供 HTTPS 也不需要昂贵的证书。有许多提供商将发出非常基本的证书约20美元。较昂贵的包括身份验证,这是一个更关注的电子商务网站。

HTTPPOST 不是加密的,它可以被网络嗅探器、代理截获,也可以在自定义日志级别的服务器日志中泄漏。是的,POST 优于 GET,因为 POST 数据不是由代理或服务器记录的 通常,但它不是 安全。 若要保护密码或其他机密数据,您必须在 POST 之前使用 SSL 或对数据进行加密。另一种选择是在浏览器中使用摘要身份验证(参见 RFC 2617)。请记住,(自行生成的)加密不足以防止重播攻击,必须在加密之前连接 nonce 和其他数据(例如领域)(请参阅 RFC 2617了解如何在 Digest Auth 中完成)。

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

如果使用 摘要认证,则必须使用 SSL 没有

(注意: 我并不是说基于 HTTP 的摘要身份验证总是比基于 HTTPS 的 POST 更安全)。

<shameless plug>I 有一个 博客文章,它详细描述了 HTTP 请求的外观以及 GET 请求与 POST 请求的比较。为了简单起见,让:

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 / 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 中发送。因此,使用 HTTPPOST 是一种隐蔽的安全性。如果要保护数据,应该使用 SSL。

请注意,有 其他差异

请看这篇伟大的文章:

防止恶意邮件请求

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