Server
Verwendung
Server fügen den Server-Header ein, um die Software und optionale Versionsinformationen zu kennzeichnen, die die Anfrage verarbeiten. Der Wert folgt einem Produkt-Token-Format, das dem des Request-Headers User-Agent ähnelt: ein oder mehrere Produktnamen, jeweils optional gefolgt von einer Version und einem Kommentar.
Der Detailgrad in Server variiert je nach Deployment. Die Preisgabe konkreter Softwareversionen stellt ein Sicherheitsrisiko dar. Angreifer suchen gezielt nach bekannten Schwachstellen in bestimmten Versionen von Webservern, Frameworks und Betriebssystemen. Ein detaillierter Server-Header erleichtert diese Aufklärung.
Hinweis
Die Preisgabe von Versionsinformationen im Server-Header hilft Angreifern, die nach bekannten Schwachstellen suchen. Für Produktiv-Deployments ist es vorteilhaft, den Wert auf einen generischen Produktnamen zu beschränken oder den Header vollständig zu entfernen.
Übliche Ansätze zur Minderung dieses Risikos sind:
Die meisten Webserver bieten Konfigurationsoptionen, um den Wert des Server-Headers zu steuern. Nginx verwendet die Direktive server_tokens. Apache verwendet ServerTokens und ServerSignature. Reverse-Proxys und CDNs überschreiben den Wert des Ursprungsservers häufig mit ihrer eigenen Kennung.
product
Ein oder mehrere Produkt-Tokens, die die Serversoftware identifizieren. Jedes Token enthält optional eine durch einen Schrägstrich abgetrennte Version sowie einen Kommentar in Klammern.
Server: <product>/<version> (<comment>)
Mehrere Produkte erscheinen durch Leerzeichen getrennt und werden nach ihrer Bedeutung geordnet aufgeführt.
Beispiel
Eine minimale Antwort kennzeichnet die Serversoftware, ohne eine Versionsnummer offenzulegen. Dies ist der empfohlene Ansatz für Produktivumgebungen.
Server: nginx
Manche Server geben Versionsdetails und Informationen zum Betriebssystem an. Dieses Format legt mehr Angriffsfläche für versionsbasiertes Scannen offen.
Server: Apache/2.4.57 (Ubuntu)
CDN- und Cloud-Plattformen ersetzen den Wert des Ursprungsservers häufig durch ihren eigenen Produktnamen.
Server: cloudflare
Ein benutzerdefinierter oder absichtlich vager Wert verschleiert den zugrunde liegenden Technologie-Stack.
Server: webserver
Konfiguration
Unterdrücken oder minimieren Sie den Server-Header, um den Informationsabfluss in der Produktion zu verringern.
nginx:
server_tokens off;
Dies reduziert den Wert auf nginx ohne Versionsnummer. Um den Header vollständig zu entfernen, wird das Modul headers-more benötigt:
more_clear_headers Server;
Apache:
ServerTokens Prod
ServerSignature Off
ServerTokens Prod reduziert den Wert auf Apache ohne Versions- oder Moduldetails. ServerSignature Off entfernt Serverinformationen aus Fehlerseiten.
IIS:
Entfernen Sie den Header über ausgehende Regeln von URL Rewrite oder setzen Sie removeServerHeader=“true” in applicationHost.config (.NET 8+).