我了解服务器可以找到我的IP地址,位置,浏览器信息和操作系统。关于操作系统...如果我正在运行Linux,服务器是否可以找出我正在使用的Linux发行版?
我了解服务器可以找到我的IP地址,位置,浏览器信息和操作系统。关于操作系统...如果我正在运行Linux,服务器是否可以找出我正在使用的Linux发行版?
Answers:
另一个可以告诉您网站在访问该网站时可以了解您的系统的好网站是BrowserSpy.dk;Keltari的答案中列出的Electronic Frontier Foundation(EFF)网站使用了BrowserSpy.dk中的一些代码。如果单击主页左侧菜单上的浏览器,您将看到有关浏览器的信息。当我在Ubuntu Linux系统上使用Firefox访问该页面时,看到“ Mozilla / 5.0(X11; Ubuntu; Linux i686; rv:24.0)Gecko / 201001 Firefox / 24.0)”
浏览器可以在几个地方发送信息:
User-AgentHTTP标头。它是HTTP规范的一部分,每个请求都有一个https://en.wikipedia.org/wiki/User_agent 。如您所见,其中包含渲染引擎名称,浏览器版本和操作系统名称。使用“开发人员工具栏”或“萤火虫”查找浏览器发送的标题列表:https : //stackoverflow.com/questions/4423061/view-http-headers-in-google-chrome
JavaScript:JavaScript中有一个Navigator类,它提供操作系统名称和浏览器名称:http : //www.w3schools.com/js/js_window_navigator.asp。一些站点可能使用JS来检测此信息并将其发送回服务器。您可以使用简单的JS进行检查alert(navigator.appName); alert(navigator.platform);
TCP / IP堆栈指纹:不同的TCP / IP实现(WinSock与Berkley套接字)和不同的OS版本具有略有不同的默认选项。可以使用一些启发式方法来检测OS系列。这是黑客式的方法,很少使用:https : //en.wikipedia.org/wiki/TCP/IP_stack_fingerprinting
现代JavaScript也可以通过Geolocation API报告您的位置(例如GPS),但始终会询问您是否要向服务器提供此信息:http : //www.w3schools.com/html/html5_geolocation.asp
顺便说一下,服务器并非总是能够找到您的真实IP。如果使用代理,代理可以将您的真实IP发送到服务器(使用X-Real-IP或X-Forwarded-For标头),但不是必须的。如果在路由器上配置了NAT,您甚至可能没有公用IP。在这种情况下,服务器将仅知道您路由器的公共IP,并且整个办公室(数百人)可能只有一个公共IP。