我对我的服务器做了一个nmap,我观察了指纹,我该如何禁用它?
443/tcp open ssl/http TwistedWeb httpd 9.0.0
我对我的服务器做了一个nmap,我观察了指纹,我该如何禁用它?
443/tcp open ssl/http TwistedWeb httpd 9.0.0
“指纹”是服务器在 http 会话开始时识别自己的方式。因此我们应该看看是什么在twisted中实现了Web服务器,它的标识保存在哪里。
现在,如果我们查看http://twistedmatrix.com/trac/browser/tags/releases/twisted-12.2.0/twisted/web/server.py第 498 行状态
version = "TwistedWeb/%s" % copyright.version
然后这个变量由 Request.process() 方法处理
class Request(pb.Copyable, http.Request, components.Componentized):
....
def process(self):
"Process a request."
# get site from channel
self.site = self.channel.site
# set various default headers
self.setHeader('server', version)
self.setHeader('date', http.datetimeToString())
# Resource Identification
self.prepath = []
self.postpath = map(unquote, string.split(self.path[1:], '/'))
try:
resrc = self.site.getResourceFor(self)
self.render(resrc)
except:
self.processingFailed(failure.Failure())
因此,您可以轻松地继承 Request 并覆盖 process 方法,以做您喜欢的事情。或者你理论上可以在你的应用程序代码中做这样的事情:
from twisted.web import server
server.version = "COBOL HTTPD SERVICE"
覆盖导入资源中的版本值。