Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GET数据也用HTTPS加密吗?_Https_Http Get - Fatal编程技术网

GET数据也用HTTPS加密吗?

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

当你得到

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

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

但是,请注意,TLS握手的客户机Hello数据包可以通过Thanke@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
请求看起来像这样,我记不清确切的语法,但应该足够接近:

GET /search?q=qwerty HTTP/1.1
Host: www.google.de

这也是为什么对同一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连接 转移。这确保了除 用于建立连接的主机名单独携带 在该加密连接中,并且受到保护,不受 中间人攻击的方式与任何HTTPS数据的攻击方式相同

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


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

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


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

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

比如说,,


/index.php?NAME=字段部分已加密。某处网站不是。

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

HTTP/1.1在第一行的末尾。@Marcelos Cantos:谢谢,我已经有一段时间没有手工编写HTTP请求了。哪些服务器?谁可以访问?@Jader至少可以访问该服务器的管理员和黑客。对于POST请求,信息不会保留在日志中,因此除非明确记录,否则日志不会有问题。GET查询确实保留在日志中,如果日志中发生的任何情况或管理员决定将这些日志用于任何不好的活动,您就有麻烦了。JFYI:有一个TLS扩展,允许客户端指定主机名,以便服务器可以选择相应的证书。@Eugene:谢谢-我知道TLS扩展,但是仅仅是在最松散的意识中——我对细节一无所知,也不知道它在实际使用中的范围有多广。+1谢谢。这是在我自己的物理服务器上,所以我不太担心日志,但对于在共享托管环境中考虑这一点的人来说,这是一个很好的考虑。同样重要的是要考虑,因为我将用这种方式传送信用卡号码,而且肯定不会想记录它们:它不是你自己的盒子。你也不希望拥有它的任何人,即邪恶的黑客,以明文形式看到这些密码。或者那些抄送号码,假设你没有把它们存储在其他地方。你应该把它们放在帖子正文中,而不是URL查询字符串中。你是否担心wbeserver没有那么严格的限制
访问其日志比访问网站数据库、文件等更重要。?我想,只要数据能够安全地访问Web服务器,一切都会很好。只有能够访问Web服务器的人才应该被认为是可靠的,因为如果他们没有访问权限,您将无法阻止他们以某种方式读取数据。当通过GET发送密码并将其记录在访问日志中时,密码不会被散列。我认为这是最大的问题。如果您可以在web服务器的访问日志中查找密码,那么在数据库中使用哈希密码并不重要。它们应该在数据库中散列,如果没有,请修复它。我对URL被加密的说法有点不高兴。主机名不是url的一部分吗?如果是这样的话,这个说法是错误的。无法从ISP/代理服务器中隐藏主机名/IP地址,就像在发送物理邮件时无法隐藏目标地址一样。@Abhishek:TCP/IP头中不存在主机名。我在回答中包括IP地址。域未加密。这是为了支持基于名称的虚拟主机,而不是基于IP的虚拟主机@Marcelocontos完全正确,URL的其余部分即GET命令是加密的。这在@hafichuk中有介绍:谢谢。我不知道TLS可以为fqdn做广告。我承认,几年前我最后一次尝试设置https多服务器时,似乎不可能在单个ip上实现。除了包含域名的TLS之外,真正重要的是:不要忘记明文DNS请求,也包括域名。可能有人可以看到您加密的HTTPS流量,也可以监视您的DNS请求。