0

サーバーにnmapを実行し、フィンガープリントを監視しました。無効にするにはどうすればよいですか?

443/tcp  open     ssl/http     TwistedWeb httpd 9.0.0
4

1 に答える 1

2

「フィンガープリント」は、サーバーが http セッションの開始時に自分自身を識別する方法です。したがって、ツイストで Web サーバーを実装するものと、その ID をどこに保持するかを調べる必要があります。

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())

したがって、リクエストを簡単にサブクラス化し、プロセスメソッドを上書きして、好きなことを行うことができます。または、理論的には、アプリケーション コードで次のようなことを行うこともできます。

from twisted.web import server
server.version = "COBOL HTTPD SERVICE"

インポートされたリソースのバージョン値をオーバーライドします。

于 2012-12-11T11:24:54.163 に答える