J'exécute un serveur sur nodejs avec express. Je n'arrive pas à me débarrasser de l'en-tête:
X-Powered-By:Express
Je me demandais s'il y avait un moyen de se débarrasser de cet en-tête ou dois-je vivre avec?
javascript
node.js
express
http-headers
webserver
tyronegcarter
la source
la source
Réponses:
Dans Express> = 3.0.0rc5:
Voici un middleware simple qui supprime l'en-tête dans les versions antérieures d'Express:
la source
app.use(app.router);
pour que ça marche.4.15.2
. La solution @harrisunderwork aapp.set()
fait l'affaire.Juste pour reprendre la réponse de rjack, vous pouvez également (facultativement) simplement changer (définir) l'en-tête X-powered-by en quelque chose de beaucoup plus cool / personnalisé comme ceci:
la source
À partir d'Express v3.0.0rc5, la prise en charge de la désactivation de l'en-
X-Powered-By
tête est intégrée:la source
De la source ( http://expressjs.com/en/api.html#app.set ). Dans Express 4.X, configurez simplement l'application en utilisant la ligne ci-dessous;
la source
Voici un middleware pratique que vous pouvez ajouter pour remplacer X-Powered-By:
Définir X-Powered by dans ce cas remplacerait la valeur par défaut «Express», vous n'avez donc pas besoin à la fois de désactiver ET de définir une nouvelle valeur.
la source
Peut-être que cela pourrait être évident pour les utilisateurs d'Express plus expérimentés, mais seul cela a fonctionné pour moi:
la source
Parfois, les réponses en haut ne fonctionnent pas. C'est mon cas. J'ai Express 4.17.1 et aucune réponse ne fonctionne. J'ai donc inventé ma propre solution:
la source
Pour se cacher, X-Powered By vous pouvez utiliser le casque Node .js Library .
Le lien pour qui est le casque
la source
Aucun des travailleurs de solutions standard pour moi non plus. Après de nombreuses recherches, j'ai découvert que nous avons utilisé un fichier de routes dans lequel une nouvelle instance express a été lancée, qui a ensuite été ajoutée à la première en utilisant app.use. Uniquement pour les routes de cette nouvelle instance express, l'en-tête X-Powered-By était présent.
Vue simpliste du problème:
La solution était simplement de créer un nouveau routeur express au lieu d'une instance entière.
la source
La lecture du code https://github.com/visionmedia/express/blob/master/lib/http.js#L72 me fait penser que vous devrez vivre avec car cela ne semble pas être conditionnel.
Si vous avez un frontend nginx / apache, vous pouvez toujours supprimer l'en-tête avec lui (avec mod_headers pour apache et headers-more pour nginx)
la source
removeHeader fonctionnera uniquement dans le middleware de routage, exemple coffeescript
la source
Rien de tout cela n'a fonctionné pour moi, sauf ceci (vous devez ajouter un autre paramètre):
J'utilise Express ^ 4.17
la source