0

我对我的服务器做了一个nmap,我观察了指纹,我该如何禁用它?

443/tcp  open     ssl/http     TwistedWeb httpd 9.0.0
4

1 回答 1

2

“指纹”是服务器在 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"

覆盖导入资源中的版本值。

于 2012-12-11T11:24:54.163 回答