当通过HTTPS发送数据时,我知道内容是加密的,但是关于头是否加密,或者头加密了多少,我听到了不同的答案。

有多少HTTPS头是加密的?

包括GET/POST请求url, cookie等。


当前回答

是的,头文件是加密的。写在这里。

HTTPS消息中的所有内容都是加密的,包括头和请求/响应负载。

其他回答

使用SSL,加密是在传输级别,因此它在发送请求之前进行。

所以请求中的所有内容都是加密的。

老问题的新答案,抱歉。我想我应该加上2美分

OP询问头是否被加密。

它们是:在运输中。

如果不是在运输途中,它们就不是。

所以,你的浏览器的URL(和标题,在某些情况下)可以显示查询字符串(通常包含最敏感的细节)和头部的一些细节;浏览器知道一些头信息(内容类型,unicode等);浏览器历史记录、密码管理、收藏夹/书签和缓存页面都将包含查询字符串。远程端的服务器日志还可以包含查询字符串以及一些内容详细信息。

此外,URL并不总是安全的:域、协议和端口是可见的——否则路由器不知道将请求发送到哪里。

此外,如果你有一个HTTP代理,代理服务器知道地址,通常他们不知道完整的查询字符串。

所以如果数据在移动,它通常是受保护的。如果不在运输途中,就没有加密。

不是挑刺,但数据在最后也被解密,并可以随意解析,读取,保存,转发或丢弃。而且,任何一端的恶意软件都可以对进入(或退出)SSL协议的数据进行快照——例如(坏的)Javascript在HTTPS的页面中可以秘密地对日志网站进行http(或HTTPS)调用(因为访问本地硬盘通常是受限的,而且没有用)。

另外,cookie也不是在HTTPS协议下加密的。希望在cookie(或其他任何地方)中存储敏感数据的开发人员需要使用他们自己的加密机制。

至于缓存,大多数现代浏览器不会缓存HTTPS页面,但这一事实并不是由HTTPS协议定义的,它完全取决于浏览器的开发人员,以确保不缓存通过HTTPS接收的页面。

所以如果你担心数据包嗅探,你可能没事。但如果你担心恶意软件或有人窥探你的历史记录、书签、cookie或缓存,那你还没有脱离险境。

头部是完全加密的。在网络上“明确”传递的唯一信息与SSL设置和D/H密钥交换有关。这种交换经过精心设计,不会向窃听者提供任何有用的信息,而且一旦发生,所有数据都是加密的。

HTTP版本1.1增加了一个特殊的HTTP方法CONNECT——用于创建SSL隧道,包括必要的协议握手和加密设置。 之后的常规请求都包裹在SSL隧道中发送,包括头部和主体。

HTTPS (HTTP over SSL)通过SSL隧道发送所有HTTP内容,因此HTTP内容和报头也是加密的。