服务器可以使用 http 标头顺序来捕获浏览器签名吗?



我知道 http 标头顺序对于 Web 服务器处理请求并不重要(或者至少不应该重要)。但是,我想知道服务器(尤其是反向代理或 CDN)如何检查标头位置以合法请求。

让我解释一下。当我使用 Firefox 执行简单的 http 请求时,这些是我的标头:

GET / HTTP/1.1
Host: stackoverflow.com
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:39.0) Gecko/20100101 Firefox/39.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
DNT: 1    
Cookie: yummy=yes_they_are
Connection: keep-alive
Cache-Control: max-age=0

使用铬:

GET / HTTP/1.1
Host: stackoverflow.com
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36
DNT: 1
Accept-Encoding: gzip, deflate, sdch
Cookie: yummy=yes_they_are

不完全一样,对吧?然后,如果我将用户代理更改为 Firefox:

GET / HTTP/1.1
Host: stackoverflow.com
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:39.0) Gecko/20100101 Firefox/39.0
DNT: 1
Accept-Encoding: gzip, deflate, sdch
Cookie: yummy=yes_they_are
由于标头位置与

Firefox的"标头位置习惯"不匹配,因此服务器可以知道正在发生可疑的事情(用户可能会使用Chrome扩展程序来欺骗其用户代理)。

一些http服务器真的检查这种事情吗?至少,他们有可能这样做(云前等等)?还是我完全不应该打扰的事情?如果我应该,我在哪里可以找到主要浏览器的详尽标题订单列表?

一般来说,顺序并不(也不应该)重要。

但基于这个答案,也有例外。因此,要回答一个问题:是的,服务器(如incapsula)可以使用http标头顺序来捕获浏览器签名。

相关内容

  • 没有找到相关文章

最新更新