为了账号安全,请及时绑定邮箱和手机立即绑定

使用HTTPS时,URL和请求标头是否像请求正文一样受到保护?

/ 猿问

使用HTTPS时,URL和请求标头是否像请求正文一样受到保护?

慕慕森 2019-11-02 10:35:15

只是想验证一下,建立SSL连接时(http post)说:


https://www.example.com/some/path?customer_key=123123123

如果您不希望任何人知道customer_key,即使我正确设置了https连接,这种方法也将不起作用?


我要保护的所有数据都必须在请求正文中,对吗?


查看完整描述

3 回答

?
幕布斯5086720

引用HTTPS RFC:


TLS握手完成后。客户端然后可以发起第一HTTP请求。所有HTTP数据必须作为TLS“应用程序数据”发送。


本质上,首先建立安全的SSL / TLS通道。只有这样,才使用HTTP协议。这将使用SSL保护所有HTTP流量,包括HTTP标头(包含URL和cookie)。


握手中可以看到的是主机名本身,因为它包含在服务器证书中,服务器证书中的主机名也可以在握手中清楚地看到(并且无论如何通过查看目标IP地址通常很容易猜出主机名)。


使用服务器名称指示时,请求的主机名也应该server_name在ClientHello消息的扩展名中可见。否则,如果证书对于多个主机名(例如,多个主题替代名称或通配符)有效,则可能存在一些含糊之处(对于窃听者),无法从证书中猜测主机名。在这种情况下,从客户端窃听DNS请求可能会为攻击者提供线索。


阅读其他人的答案和评论,有些人提到有关Referer(r规范中遗失的)和日志的问题。


从HTTPS到HTTP时,不应发送引荐来源网址(但从一个HTTPS站点到另一个HTTPS站点时,通常会发送引荐来源)。

关于历史记录:您只需要相信可能会合法获得该密钥的任何人(即您的用户)就不会散布它。如果需要,请制定策略以不时更改它。

关于日志:我假设您是在通过网络进行保护之后。该URL(包括查询)确实将存在于日志中,但是如果有人能够攻击您的计算机以获取日志,则您还要担心您的应用密钥。

剩下的潜在弱点之一是如何将链接提供给用户。如果将其嵌入通过纯HTTP服务的网页中,则可以阅读该页面的任何人都可以看到它。您也应该通过HTTPS提供此类页面。如果您改为通过电子邮件发送该链接,那么我会说所有赌注都没有了,因为邮件服务器很少加密自己与用户之间的连接,而且用户经常访问未经加密的电子邮件帐户。


编辑:


此外,如果您使用的是客户端证书身份验证,则在初始握手期间协商通过该客户端证书后,该客户端证书将可见。这可能会泄露访问网站的用户名(通常主题DN包含用户名)。如果客户端证书是在重新协商的握手过程中发送的,则它将不可见。


查看完整回答
反对 回复 2019-11-02
?
墨色风雨

建立安全连接后将发送请求数据,因此无需担心上述URL,但请记住您的数据未加密,只有服务器和客户端之间的通道已加密,如果可以破解此通道,则可以清楚地看到您的数据。


SSL是数据顶部的包装加密通道。如果数据是纯数据,则可以破解SSL的任何人都可以清楚地看到您的数据。


查看完整回答
反对 回复 2019-11-02
?
天涯尽头无女友

那要看..


如果使用数据包嗅探器,则看不到通过有线发送的数据。这种方法的主要问题是,请求url通常以纯文本格式保存在服务器的日志中,浏览器历史记录保留该url,URL在Referrer标头中传递,并且可能由第三方服务(Google Analytics)保留。


查看完整回答
反对 回复 2019-11-02
  • 3 回答
  • 0 关注
  • 133 浏览
我要回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信