将登录凭据作为纯文本传递到HTTPS URL是否安全?

And*_*rew 13 https

将登录凭据作为纯文本传递到HTTPS URL是否安全?

https://domain.com/ClientLogin?Email=jondoe@gmail.com&Passwd=123password

更新:所以我们假设这不是在浏览器中输入,而是以编程方式生成并通过POST请求(而不是GET请求)进行请求.它安全吗?

解:

GET请求中使用这种类型的URL (即在浏览器中键入URL)是不安全的,因为请求的URL将保存在浏览器历史记录和服务器日志中.

但是,作为POST请求https://domain.com/ClientLogin提交(即提交表单)是安全的POST body,因为在POST body连接到请求的URL之后加密并发送凭证作为其一部分.因此,表单操作将是https://domain.com/ClientLogin,表单字段值将在中传递POST body.

以下是一些帮助我更好地理解这一点的链接:

StackOverflow的答案问题:https URL是否已加密?

SSL和HTTPS的直截了当的说明

Google Answers:HTTPS - URL字符串本身是否安全?

HTTP变得非常容易

Pis*_*3.0 16

不会.他们不会在途中被看到,但他们会留在:

  • 浏览器历史
  • 服务器日志

如果可能的话,在身份验证时使用POST over HTTPS,然后设置"经过身份验证"的cookie,或者通过HTTPS使用HTTP摘要授权,甚至通过HTTPS使用HTTP Basic身份验证 - 但无论你做什么,都不要保密/敏感URL中的数据.

编辑:当我写"使用POST"时,我的意思是"在POST字段中通过HTTPS发送敏感数据".发送a POST http://example.com/ClientLogin?password=hunter2与使用GET发送它一样错误.

TL; DR:不要在URL中放置密码.永远.