通过HTTPS的POST表单值

POST form values over HTTPS

提问人:Anriëtte Myburgh 提问时间:1/31/2011 最后编辑:BalusCAnriëtte Myburgh 更新时间:11/16/2023 访问量:1320

问:

我对 HTTPS 相当不熟悉,但我知道它是安全的,我想知道的是,当用户使用表单上的详细信息登录时,该表单中的变量(用户名、密码)是否加密发送到服务器?

我问这个问题,因为我正在使用表单登录人们,但我也使用 MD5 和 SALT 对他们的密码进行哈希处理以进行验证。

此外,HTTPS 是否足够安全,可以防止主机上运行的任何间谍软件拦截登录详细信息?

很抱歉在这篇文章中提出了几个问题,但提前感谢您的任何回答。

加密 https 哈希

评论

0赞 SLaks 1/31/2011
MD5 不安全。不要使用它。
0赞 Anriëtte Myburgh 1/31/2011
我看到 Joomla 将 MD5 与 SALT 一起使用(就像我正在做的那样),这是无效的吗?我还使用多个哈希,首先对(密码)进行哈希处理,然后对(password.salt)进行哈希处理。您还推荐哪些其他哈希?
0赞 CodeOverload 1/31/2011
@SLaks为什么大家都害怕MD5,尤其是SALT参与了加密
0赞 SLaks 1/31/2011
我希望您使用加密安全的每用户随机字节序列(不是 ASCII)作为盐。顺便说一句,盐不是首字母缩写词,不应大写。

答:

2赞 SLaks 1/31/2011 #1

在 HTTPS 请求中发送到服务器和从服务器发送的所有数据都经过加密。
这包括 URL、标头、POST 数据和响应。

如果你的敌人在任一端点上运行了代码,那么他已经打败了你。
你对此无能为力,他无法击败。

评论

0赞 Anriëtte Myburgh 1/31/2011
我们假设托管服务器是安全的,但是有什么方法可以在客户端进行保护呢?
1赞 SLaks 1/31/2011
不;一点也不。您可以提供免费的防病毒软件,并希望您的用户安装它。
2赞 CodeOverload 1/31/2011 #2

HTTPs是一种协议,用于防止监视ISP或公共WIFI劫持者在您和服务器之间发送的数据以及其他情况,它可能无法阻止服务器上的间谍软件读取它,要使用SSL发布数据,您只需要将属性设置为完整的结束URL,假设您已经安装了SSL证书。actionhttps://

来自维基百科:

安全超文本传输协议 (HTTPS) 是 超文本传输协议 SSL/TLS 协议提供加密 通信和安全 网络 Web 的标识 服务器。

关于,我相信您的 And 技术组合是相当安全的,它可以防止黑客在访问您的数据库时轻松找到流行的密码。MD5MD5SALT

1赞 pilotcam 1/31/2011 #3

HTTPS对于两个方向的流量肯定是安全的(假设您保持私钥安全)。间谍软件可能会破坏私钥,从而危及到主机的 HTTPS 流量的安全性。

5赞 Quentin 1/31/2011 #4

我对 HTTPS 相当不熟悉,但我知道它是安全的,我想知道的是,当用户使用表单上的详细信息登录时,该表单中的变量(用户名、密码)是否加密发送到服务器?

整个 HTTP 请求和响应都是加密的。

但是,将主机名转换为 IP 地址的 DNS 查找不会。

此外,HTTPS 是否足够安全,可以防止主机上运行的任何间谍软件拦截登录详细信息?

不。HTTPS 对客户端和服务器之间的通信进行加密。它无法阻止客户端上的软件干扰请求或读取响应。这包括攻击者拦截表单请求并对其进行修改的可能性,因此表单也必须通过 SSL 发送。

评论

0赞 gawpertron 5/1/2014
初始请求 url 查询参数不会加密
1赞 Quentin 5/1/2014
@gawpertron——错了。如果通过 HTTPS 发送,则查询字符串将被加密。
4赞 Chris Allen Lane 1/31/2011 #5

还行。让我们把这个问题分解一下,并在这里介绍一些事情。

首先:你说你知道HTTPS是“安全的”。让我们对此进行一些限定。

HTTPS是一种加密机制,仅此而已,因此使用HTTPS本身并不能保证任何更广泛意义上的“安全性”。如果您使用的是 HTTPS,您实际上所知道的是,从访问者的浏览器发送到您的服务器的任何信息都将通过加密的通信通道发送,例如防止中间人攻击

虽然这是必不可少的,但使用加密/HTTPS 绝不能保护您免受任何其他潜在漏洞的侵害,包括损坏的身份验证机制、SQL 注入、跨站点脚本 (XSS) 和许多其他漏洞。

如果你有兴趣了解更多关于信息安全的信息,我强烈建议你阅读布鲁斯·施奈尔(Bruce Schneier)的《秘密与谎言》,他是一位备受尊敬的安全权威。这本书现在有点旧了,但在我看来,它所包含的信息已经过时了。

第二:明确地说,使用HTTPS绝不会保护您免受间谍软件等的侵害。请记住,HTTPS只能确保加密通信,但除此之外别无他法。

第三:正如 SLaks 所说,MD5 可能不再是最好的哈希算法了。虽然我不是密码学方面的专家,但我认为如果你使用 SHA1(加上强)来代替,你仍然是相当安全的。据我所知,MD5 在过去几年中遭受了一些数学上的失败,这削弱了它的安全性。

如果你有兴趣了解 Web 安全的细节,我还强烈推荐 The Web Application Hacker's Handbook,我认为这是关于这个主题的优秀入门书。

我希望这对您有所帮助。

1赞 Gumbo 1/31/2011 #6

HTTPS 的目的是用于维护以下三个基本信息安全需求:

  • 机密性 – 只有收件人才能阅读为他/她发送的消息。
  • 完整性 – 收件人可以检测传输的消息是否受到损害。
  • 真实性 – 收件人可以验证传输的消息是否来自发件人。

就是这样。请注意,这仅适用于传输的消息。发送的内容以及发送方和接收方的数据发生的情况超出了范围,因为 HTTPS 仅保护传输通道。

特别是,这意味着例如

  • 发送方通过受 HTTPS 保护的通道发送已存在的恶意数据
  • 收件人通过受 HTTPS 保护的通道接收敏感数据,但计算机上有可以读取数据的间谍软件。

因此,要回答您的两个问题:

[...]当用户使用表单上的详细信息登录时,发送到服务器的该表单中的变量(用户名、密码)是否加密?

是的,如果您使用HTTPS进行传输,则传输的数据由客户端加密,只有服务器可以解密。

此外,HTTPS 是否足够安全,可以防止主机上运行的任何间谍软件拦截登录详细信息?

不,如前所述,HTTPS仅保护从发送方到接收方的数据传输。超出此范围的任何事情都超出了范围。