Könnte jemand bitte mich wissen lassen, welcher der folgenden zwei Ansätze empfohlen wird und warum:
Nehmen Sie die erforderlichen Änderungen vor ServerInfo.properties
Definieren Sie "Fehlerseite" in web.xml
Die Antworten sind ein bisschen veraltet, also: Wenn Sie einen Tomcat 6 oder neuer verwenden (ich habe auf Tomcat 7 getestet), können Sie das ErrorReportValve verwenden, um das gleiche auf eine Weise zu erreichen, die viel einfacher zu konfigurieren und ist pflegen. Fügen Sie einfach die folgenden Zeilen zum Host-Bereich Ihrer server.xml hinzu (wo Sie bereits den AccessLogValve:
haben sollten) %Vor%Auf diese Weise verstecken Sie die Server-Informationen und (wegen des optionalen showReport = false) auch die Stack-Traces.
Weitere Informationen dazu finden Sie in der Sicherheitsanleitung und in der Dokumentation des Fehlerberichts Valve .
Ich würde die Änderungen an ServerInfo.properties trotzdem vornehmen - möglicherweise gibt es andere Stellen, an denen die ServerInfo.properties-Versionsinformationen abgerufen werden können als nur Fehlerseiten. (Vielleicht verlässt jemand die Standard-Homepage, Samples, etc. und diese können es haben.)
Definieren Sie Fehlerseiten in Ihrer Web-App, wenn Sie möchten - eine schnellere Möglichkeit besteht darin, Ihre Standardfehlerseiten global zu ändern, indem Sie sie in CATALINA_HOME / conf / web.xml angeben. Dies wird standardmäßig die neu angegebenen Fehlerseiten verwenden Ein Entwickler vergisst, Fehlerseiten für seine App anzugeben.
Das Ändern von ServerInfo.properties
ist am sichersten. Wenn Sie zum Beispiel eine Webanwendung auf http://example.com/contextname
bereitgestellt haben, könnte trotzdem eine 404
by http://example.com/blah
oder so erhalten werden. Man könnte es auch programmatisch erhalten, indem man einen Roboter zum Senden einer Anfrage mit einer nicht unterstützten Methode verwendet (die 503
Fehlerseite zurückgibt).
Das sagte ich ehrlich gesagt keine gültigen Gründe, Tomcat-Version davon zu verbergen. Diese Information fügt tatsächlich keinen Wert für "normale Benutzer" hinzu. Es hält auch keinen Hacker davon ab, alles zu versuchen, um es herunterzubekommen oder Sicherheitslücken auszunutzen (falls es welche gab ...). Sie machen sich keine Gedanken darüber, ob die Version angezeigt wird oder nicht. Für die "normalen Benutzer" würde ich immer noch eine benutzerdefinierte Fehlerseite verwenden, die ein bisschen mehr in den Stil der betreffenden Webanwendung integriert ist, so dass sie weniger "gruselig" ist und somit das Benutzererlebnis verbessert.