HTTPS头部有多少被加密?
包括GET/POST请求URL、Cookies等。
标题头完全加密。通过网络传输的“明文”信息只涉及SSL设置和D/H密钥交换。此交换经过精心设计,不会向窃听者提供任何有用的信息,一旦交换完成,所有数据均被加密。
对于这个老问题,我想再补充一些意见。
楼主问的是头部是否加密。
当数据在传输时,它们是加密的。
但是当数据不在传输时,它们就没有被加密。
因此,您的浏览器URL(以及在某些情况下的标题)可以显示查询字符串(通常包含最敏感的细节)和头信息中的一些详细信息;浏览器了解一些头信息(内容类型、Unicode等);浏览器历史记录、密码管理、收藏夹/书签和缓存页面都将包含查询字符串。远程端的服务器日志也可能包含查询字符串以及一些内容详情。
此外,URL并不总是安全的:域名、协议和端口是可见的——否则路由器就不知道将您的请求发送到哪里。
此外,如果您使用HTTP代理,代理服务器会知道地址,但通常不知道完整的查询字符串。
因此,如果数据正在移动,则通常受到保护。如果数据不在传输中,则未加密。
不是要挑剔,但数据最终也会被解密,可以随意解析、读取、保存、转发或丢弃。此外,在任一端的恶意软件都可以拍摄进入(或退出)SSL协议的数据快照——例如,HTTPS内部页面中的(坏的)Javascript可以偷偷地向日志网站发出http(或https)调用(因为通常限制对本地硬盘的访问并不实用)。
此外,在HTTPS协议下,Cookie也没有被加密。希望在Cookie(或任何其他地方)存储敏感数据的开发人员需要使用自己的加密机制。
至于缓存,大多数现代浏览器不会缓存HTTPS页面,但这个事实并未由HTTPS协议定义,它完全取决于浏览器开发人员确保不缓存通过HTTPS接收的页面。
因此,如果您担心数据包嗅探,您可能没事了。但是,如果您担心恶意软件或有人查看您的历史记录、书签、Cookie或缓存,则还没有彻底解决问题。
HTTP 1.1 版本新增了一种特殊的HTTP方法 CONNECT,旨在创建SSL隧道,包括必要的协议握手和加密设置。
之后所有的常规请求都会被包含在SSL隧道中发送,包括头部和正文。
HTTPS (安全套接层上的HTTP) 将所有 HTTP 内容都发送到 SSL 通道中,因此 HTTP 内容和标头也被加密。
是的,头部信息也是被加密的。这里有相关内容。
HTTPS消息中的所有内容都被加密,包括头部信息以及请求和响应内容。
URL也是加密的,实际上只有IP、端口和如果存在SNI,则主机名是未加密的。