Answers:
是的。但是使用GET处理敏感数据是一个坏主意,原因有以下几个:
因此,即使Querystring是安全的,也不建议通过querystring传输敏感数据。
[1]尽管我需要指出RFC指出浏览器不应将引荐来源网址从HTTPS发送到HTTP。但这并不意味着坏的第三方浏览器工具栏或HTTPS站点的外部图像/闪存都不会泄漏它。
History caches in browsers
或为ir添加一些参考?
是的,您的查询字符串将被加密。
其背后的原因是查询字符串是HTTP协议的一部分,而HTTP协议是应用程序层协议,而安全性(SSL / TLS)部分来自传输层。首先建立SSL连接,然后将查询参数(属于HTTP协议)发送到服务器。
建立SSL连接时,您的客户端将按顺序执行以下步骤。假设您正尝试登录名为example.com的站点,并希望使用查询参数发送凭据。您的完整URL可能如下所示:
https://example.com/login?username=alice&password=12345)
example.com
为IP地址(124.21.12.31)
。当查询该信息时,仅使用特定于域的信息,即仅example.com
将使用。124.21.12.31
并尝试连接到端口443(SSL服务端口,而不是默认的HTTP端口80)。example.com
将其证书发送给您的客户端。因此,您不会公开敏感数据。但是,使用此方法通过HTTPS会话发送凭据不是最佳方法。您应该采用其他方法。
(e.g http://example.com/login?username=alice&password=12345)
。
SSL首先连接到主机,因此主机名和端口号以明文形式传输。当主机响应并且质询成功时,客户端将使用实际URL(即第三个斜杠之后的内容)对HTTP请求进行加密,然后将其发送到服务器。
有几种方法可以打破这种安全性。
可以将代理配置为充当“中间人”。基本上,浏览器将连接到真实服务器的请求发送到代理。如果以这种方式配置代理,它将通过SSL连接到真实服务器,但浏览器仍会与代理对话。因此,如果攻击者可以访问代理,则他可以以明文形式查看流经代理的所有数据。
您的请求也将在浏览器历史记录中显示。用户可能会倾向于将站点添加为书签。一些用户安装了书签同步工具,因此密码可能会出现在deli.ci.us或其他地方。
最后,可能有人入侵了您的计算机,并安装了键盘记录器或屏幕抓取工具(许多Trojan Horse型病毒也感染了)。由于密码可以直接在屏幕上看到(而不是密码对话框中的“ *”),因此这是另一个安全漏洞。
结论:关于安全性,请始终遵循常规。有太多您不知道,不会想到的东西,它们会折断您的脖子。
我不同意有关说法[...] HTTP引用泄漏(在目标页面的外部图像可能会泄露密码)在斯劳的回应。
HTTP 1.1 RFC 明确指出:
如果引用页面是通过安全协议传输的,则客户端不应在(非安全)HTTP请求中包含引用头字段。
无论如何,服务器日志和浏览器历史记录是不将敏感数据放入查询字符串中的充分原因。
您可以添加一些盐作为MD5哈希参数发送密码。在服务器端比较它的身份验证。