关于web服务器头部的Server与X-Powered-By信息
通过工具可以查询到站点服务器信息与程序信息及版本,其实这是通过服务器响应头信息里返回的,如果把这些信息暴露出去对站点不安全,我们可以通过隐藏或修改头信息的方法来阻止这些信息暴露
头信息包含服务器信息与程序信息
有些查询工具在我们输入某个站点的URL后就能判断这个站点的WebServer与程序类型。
例如在站长工具下guofei.me站点:
查询豆瓣的
这个工具重点在于它可以检测出站点的服务器类型与程序类型,它是依据什么途径获取服务器类型与程序支持的信息呢?我们用Chrome打开刚才测试用的guofei.me站点,看服务器响应头信息
刚才利用工具检测出的服务器与程序支持的信息都在站点响应的头信息里,这些信息都是web服务器软件输出的,不同的web服务器还有不同的输出,比如tomcat的
修改这头信息
每个webserver都有自己的标识,甚至版本号!这些信息如果暴露出去,服务器就容易被攻击,严重的甚至导致站点数据丢失。既然它是程序输出,我们只要找到输出的地方就能修改,下面以本站用的Tornado作为例子教你如何修改这两个头信息
一、打开tornado的web.py文件,找到
def clear(self): """Resets all headers and content for this response.""" self._headers = httputil.HTTPHeaders({ "Server": "TornadoServer/%s" % tornado.version, "Content-Type": "text/html; charset=UTF-8", "Date": httputil.format_timestamp(time.gmtime()), }) self.set_default_headers() if not self.request.supports_http_1_1(): if self.request.headers.get("Connection") == "Keep-Alive": self.set_header("Connection", "Keep-Alive") self._write_buffer = [] self._status_code = 200 self._reason = httputil.responses[200]
这里就是头信息输出定义的地方,默认程序输出的Server信息如:
直接输出了程序信息与版本,我们修改一下server字段,并且添加X-Powered-By程序支持字段如:
def clear(self): """Resets all headers and content for this response.""" self._headers = httputil.HTTPHeaders({ "Server": "QttcServer", "X-Powered-By": "mail@lizhong.me", "Content-Type": "text/html; charset=UTF-8", "Date": httputil.format_timestamp(time.gmtime()), }) self.set_default_headers() if not self.request.supports_http_1_1(): if self.request.headers.get("Connection") == "Keep-Alive": self.set_header("Connection", "Keep-Alive") self._write_buffer = [] self._status_code = 200 self._reason = httputil.responses[200]
重新查询,修改后的头部信息如下:
最后
任何服务器的头信息都能修改,只不过修改的方式不一样,比如PHP,Apache,Nginx等。有一次在网上看到有人说如果浏览网站时,站点的文件时php后缀的就一定是php程序,其实这是错误的,php后缀的文件不一定是PHP文件,PHP程序不一定是php后缀。
比如我站点的开放平台(http://www.qttc.net/openapi.html)接口,虽然是php后缀但实际不是PHP程序。
同理,有些站点能检测出你的浏览器版本等一些客户端信息也是请求头信息中就包含了一些信息,关于头信息大家可以通过各种途径多了解就好。
最后上一张通过http://seo.chinaz.com/?host=www.qttc.net查询我的小站效果:
文字链接:《关于web服务器头部的Server与X-Powered-By信息》
文章地址:http://www.qttc.net/201306340.html
除非标注,琼台博客所有博文均为原创,转载请加文字链接注明来源
乳名?小名?昵称?网名?均可
email,放心,我不会给你乱投广告的
想获得回访就把你的站点URL写上(没有留空)
[NOTICE]木要投放广告
[NOTICE]木要骂人,说不该说的话
[NOTICE]自由言论,但要遵纪守法