GET数据也用HTTPS加密吗?

GET数据也用HTTPS加密吗?,https,http-get,Https,Http Get,当你得到 %s查询是否加密?还是仅仅是回应? 如果不是,谷歌为什么还要为其公共内容提供加密呢?整个请求都是加密的,包括URL,甚至是命令(GET)。介入方(如代理服务器)可以收集的唯一信息是目标地址和端口 但是,请注意,TLS握手的客户机Hello数据包可以通过(Thank@hafichuk)以明文形式公布完全限定的域名,所有现代主流浏览器都使用该数据包,尽管有些仅在较新的操作系统上使用 编辑:(因为这刚刚给了我一个“好答案”徽章,我想我应该回答整个问题……) 整个响应也被加密;代理无法拦截其

当你得到

%s
查询是否加密?还是仅仅是回应?
如果不是,谷歌为什么还要为其公共内容提供加密呢?

整个请求都是加密的,包括URL,甚至是命令(
GET
)。介入方(如代理服务器)可以收集的唯一信息是目标地址和端口

但是,请注意,TLS握手的客户机Hello数据包可以通过(Thank@hafichuk)以明文形式公布完全限定的域名,所有现代主流浏览器都使用该数据包,尽管有些仅在较新的操作系统上使用

编辑:(因为这刚刚给了我一个“好答案”徽章,我想我应该回答整个问题……)

整个响应也被加密;代理无法拦截其中的任何部分


谷歌通过https提供搜索和其他内容服务,因为并非所有内容都是公开的,而且您可能还想对用户隐藏一些公开内容。无论如何,最好让Google在发送请求之前对连接进行加密。

。因此,请求也是加密的,包括查询字符串。

所有内容都是加密的,但您需要记住,您的查询将保留在服务器的日志中,并可供各种日志分析器等访问(POST请求通常不是这种情况)

SSL在头解析之前发生,这意味着:

Client creates Request
Request gets encrypted
Encrypted request gets transmitted to the Server
Server decrypts the Request
Request gets parsed
请求看起来像这样(不记得确切的语法,但应该足够接近):


这也是为什么对同一IP上的多个主机使用不同的SSL证书是有问题的,请求的主机名在解密之前是未知的。

是的,它是安全的。SSL加密一切

摘自POST请求:

POST /foo HTTP/1.1
... some other headers
GET /foo?a=b HTTP/1.1
... some other headers
摘自GET请求:

POST /foo HTTP/1.1
... some other headers
GET /foo?a=b HTTP/1.1
... some other headers
在这两种情况下,套接字上发送的任何内容都是加密的。客户端在GET请求中查看参数并不意味着中间的人会看到相同的参数。 HTTPS在传输任何HTTP数据之前建立底层SSL连接 转移。这确保所有URL数据(除 主机名(用于建立连接)单独携带 在该加密连接中,并且受到保护,不受 中间人攻击的方式与任何HTTPS数据的攻击方式相同

以上是Google Answers非常全面的答案的一部分,位于此处:


使用HTTPS时,GET请求是加密的-事实上,这就是为什么安全网站需要一个唯一的IP地址-在解密之前,无法从请求中获取预期的主机名(或虚拟目录)。

URL本身是加密的,因此,查询字符串中的参数不会在导线上平直移动


但是,请记住,包含GET数据的URL通常由Web服务器记录,而POST数据很少记录。因此,如果您计划执行类似于
/login/?username=john&password=doe
的操作,那么不要这样做;改为使用帖子。

安全发送主机名后的URL部分

比如说,,


/index.php?NAME=FIELD
部分已加密。
somewhere.com
不是。

我只是通过HTTPS连接到一个网站,并传递了一系列GET参数。然后我用wireshark嗅探网络。使用HTTP,URL被不加密地发送,这意味着我可以很容易地看到URL中的所有GET参数。使用HTTPS,一切都是加密的,我甚至看不到GET命令是哪个数据包,更不用说它的内容了

HTTP/1.1
在第一行的末尾。@Marcelos Cantos:谢谢,我已经有一段时间没有手工编写HTTP请求了。哪些服务器?谁可以访问?@Jader至少可以访问该服务器的管理员和黑客。对于POST请求,信息不会保留在日志中,因此除非明确记录,否则日志不会有问题。GET查询确实保留在日志中,如果日志发生任何情况(或者管理员决定将这些日志用于任何不好的活动),您就有麻烦了。JFYI:有一个TLS扩展,允许客户端指定主机名,以便服务器可以选择相应的证书。@Eugene:谢谢-我知道TLS扩展,但仅仅是在最松散的意识中——我对细节一无所知,也不知道它实际使用的范围有多广。这是在我自己的物理服务器上,所以我不太担心日志,但对于在共享托管环境中考虑这一点的人来说,这是一个很好的考虑。同样重要的是要考虑,因为我将以这种方式转移信用卡号码,并且肯定不会想记录它们:)它不是你自己的盒子。你也不希望拥有它的任何人(即邪恶的黑客)以明文形式看到这些密码。或者那些抄送号码(假设您没有将这些号码存储在其他地方)。您应该将它们放在帖子正文中,而不是URL查询字符串中。您是否担心wbeserver对访问其日志的限制少于对访问网站数据(数据库、文件等)的限制?我想,只要数据能够安全地访问Web服务器,一切都会很好。只有能够访问Web服务器的人才应该被认为是可靠的,因为如果他们没有访问权限,您将无法阻止他们以某种方式读取数据。当通过GET发送密码并将其记录在访问日志中时,密码不会被散列。我认为这是最大的问题。如果您可以在web服务器的访问日志中查找密码,那么在数据库中使用哈希密码并不重要。它们应该在数据库中散列,如果没有,请修复它。我对URL被加密的说法有点不高兴。主机名不是url的一部分吗?如果是这样的话,这个说法是错误的。无法对ISP/代理服务器隐藏主机名/IP地址