Ich verwende einen Server auf NodeJS mit Express. Ich kann den Header nicht loswerden:
X-Powered-By:Express
Ich habe mich gefragt, ob es eine Möglichkeit gibt, diesen Header loszuwerden, oder muss ich damit leben?
javascript
node.js
express
http-headers
webserver
Tyronegcarter
quelle
quelle
Antworten:
In Express> = 3.0.0rc5:
Hier ist eine einfache Middleware, die den Header in früheren Express-Versionen entfernt:
quelle
app.use(app.router);
damit es funktioniert.4.15.2
. @ Harrisunderwork Lösung mitapp.set()
hat den Trick gemacht.Um auf die Antwort von rjack zurückzugreifen, können Sie auch (optional) den X-powered-by-Header auf etwas viel cooleres / benutzerdefiniertes wie dieses ändern (setzen):
quelle
Ab Express v3.0.0rc5 ist die Unterstützung zum Deaktivieren des
X-Powered-By
Headers integriert:quelle
Aus der Quelle ( http://expressjs.com/en/api.html#app.set ). In Express 4.X stellen Sie die App einfach über die folgende Zeile ein.
quelle
Hier ist eine praktische Middleware, die Sie herunterladen können, um X-Powered-By auszutauschen:
Das Festlegen von X-Powered by überschreibt in diesem Fall den Standardwert 'Express', sodass Sie nicht sowohl deaktivieren als auch einen neuen Wert festlegen müssen.
quelle
Vielleicht könnte dies für erfahrene Express-Benutzer offensichtlich sein, aber nur das hat bei mir funktioniert:
quelle
Zum Ausblenden von X-Powered By können Sie den Node .js Library- Helm verwenden .
Der Link dafür ist Helm
quelle
Manchmal funktionieren die Antworten oben nicht. Das ist mein Fall. Ich habe Express 4.17.1 und keine Antwort funktioniert nicht. Also habe ich meine eigene Lösung erfunden:
quelle
Keiner der Standardlösungen arbeitet auch für mich. Nach langem Suchen stellte ich fest, dass wir eine Routendatei verwendeten, in der eine neue Expressinstanz gestartet wurde, die später mithilfe von app.use zur ersten hinzugefügt wurde. Nur für die Routen in dieser neuen Express-Instanz war der X-Powered-By-Header vorhanden.
Vereinfachte Betrachtung des Problems:
Die Lösung bestand einfach darin, einen neuen Express.Router anstelle einer ganzen Instanz zu erstellen.
quelle
Lesen des Codes https://github.com/visionmedia/express/blob/master/lib/http.js#L72 lässt mich denken, dass Sie damit leben müssen, da es nicht bedingt zu sein scheint.
Wenn Sie ein Nginx / Apache-Frontend haben, können Sie den Header trotzdem damit entfernen (mit mod_headers für Apache und Header-more für Nginx)
quelle
removeHeader funktioniert nur in Route Middleware, z. B. Coffeescript
quelle
Nichts davon hat bei mir funktioniert, außer dies (Sie müssen einen weiteren Parameter hinzufügen):
Ich benutze Express ^ 4.17
quelle