Il existe une option pour masquer la version afin qu'elle n'affiche que nginx, mais y a-t-il un moyen de masquer cela aussi afin qu'il n'affiche rien ou ne change pas l'en-tête?
nginx
http-headers
Daniels
la source
la source
Réponses:
Comme Apache, il s'agit d'une modification rapide de la source et d'une recompilation. De Calomel.org :
Edition de mars 2011: Props à Flavius ci-dessous pour avoir signalé une nouvelle option, remplaçant le HttpHeadersModule standard de Nginx par le HttpHeadersMoreModule fourchu . Recompiler le module standard est toujours la solution rapide, et a du sens si vous souhaitez utiliser le module standard et ne changez pas souvent la chaîne du serveur. Mais si vous voulez plus que cela, le HttpHeadersMoreModule est un projet fort et vous permet de faire toutes sortes de magie noire d'exécution avec vos en-têtes HTTP.
la source
r->headers_out.server
.Si vous utilisez nginx pour proxy une application back-end et que vous voulez que le back-end annonce son propre en-
Server:
tête sans que nginx l'écrase, alors vous pouvez aller à l'intérieur de votreserver {…}
strophe et définir:Cela convaincra nginx de laisser cet en-tête seul et de ne pas réécrire la valeur définie par le back-end.
la source
La dernière mise à jour remonte à un certain temps, voici donc ce qui a fonctionné pour moi sur Ubuntu:
Ajoutez ensuite les deux lignes suivantes à la
http
section denginx.conf
, qui se trouve généralement dans /etc/nginx/nginx.conf:N'oubliez pas non plus de redémarrer nginx avec
sudo service nginx restart
.la source
more_set_headers 'Server: ';
Simple, éditez /etc/nginx/nginx.conf et supprimez le commentaire de
Recherchez la section http .
la source
C'est très simple: ajoutez ces lignes à la section serveur:
la source
nginx-extra
pour obtenir ce module.Il existe un module spécial: http://wiki.nginx.org/NginxHttpHeadersMoreModule
la source
--add-module=/path-to-headers-more-nginx-module
Installez Nginx Extras
Les détails du serveur peuvent être supprimés de la réponse en ajoutant les deux lignes suivantes dans le nginx.conf (sous la section http)
la source
yum install nginx-extras
ne fonctionne pas - je suppose que cela fonctionne sur Debia / Ubuntu, etc. avec leapt-get
.)Si vous êtes d'accord pour changer simplement l'en-tête en une autre chaîne de cinq lettres ou moins, vous pouvez simplement patcher le binaire.
Ce qui, en tant que solution, présente quelques avantages notables. À savoir, que vous pouvez permettre à votre versioning nginx d'être gérée par le gestionnaire de packages (donc, pas de compilation à partir de la source) même si nginx-extras n'est pas disponible pour votre distribution, et vous n'avez pas à vous soucier des éléments supplémentaires code de quelque chose comme nginx-extras étant vulnérable.
Bien sûr, vous voudrez également définir l'option
server_tokens off
, pour masquer le numéro de version, ou corriger également cette chaîne de format.Je dis "cinq lettres ou moins" car bien sûr, vous pouvez toujours remplacer:
avec
laissant les deux derniers octets inchangés.
Si vous voulez réellement plus de cinq caractères, vous voudrez laisser server_tokens activé et remplacer la chaîne de format (légèrement plus longue), bien qu'une fois encore, il y ait une limite supérieure sur cette longueur imposée par la longueur de la chaîne de format - 1 (pour le retour chariot).
... Si rien de ce qui précède n'a de sens pour vous, ou si vous n'avez jamais patché un binaire auparavant, vous voudrez peut-être rester à l'écart de cette approche.
la source
sed
commande ci-dessus, la`which nginx`
partie retourne le chemin vers le binaire et lased
commande effectue le remplacement d'octet.nginx
pour que les modifications prennent effet. Tout cela dit? Je vous exhorte à ne pas utiliser l’une des autres réponses. Si toutes les choses que je dis ne vous sont pas déjà familières et que vous ne savez pas à quoi/etc
sert le répertoire, alors un piratage comme celui-ci est un peu dangereux.Le seul moyen est de modifier le fichier src / http / ngx_http_header_filter_module.c. J'ai changé nginx à la ligne 48 en une chaîne différente.
Ce que vous pouvez faire dans le fichier de configuration nginx est de définir server_tokens . Cela empêchera nginx d'imprimer le numéro de version.
Pour vérifier les choses, essayez curl -I http://vurbu.com/ | serveur grep
Il devrait revenir
la source
Après avoir lu la réponse de Parthian Shot, je fouille dans
/usr/sbin/nginx
un fichier binaire. Ensuite, j'ai découvert que le fichier contient ces trois lignes.Fondamentalement, les deux premiers d'entre eux sont destinés à la
server_tokens on;
directive (version serveur incluse). Ensuite, je change les critères de recherche pour qu'ils correspondent à ces lignes dans le fichier binaire.Après avoir creusé plus loin, j'ai découvert que le message d'erreur produit par nginx est également inclus dans ce fichier.
Il y en a trois, un sans la version, deux d'entre eux inclus la version. Je lance donc la commande suivante pour remplacer la chaîne nginx dans le message d'erreur.
la source
/usr/sbin
dossier donne ceci:sed: can't read is: No such file or directory
Selon la documentation de nginx , il prend en charge les valeurs personnalisées ou même l'exclusion:
mais malheureusement uniquement avec un abonnement commercial :
la source
Je sais que l'article est un peu vieux, mais j'ai trouvé une solution simple qui fonctionne sur une distribution basée sur Debian sans compiler nginx à partir des sources.
Première installation du package nginx-extras
Ensuite, chargez le module nginx http headers more en éditant nginx.conf et en ajoutant la ligne suivante dans le bloc serveur
Une fois cela fait, vous aurez accès aux directives more_set_headers et more_clear_headers.
la source
Le package Nginx-extra est désormais obsolète.
Ce qui suit a donc fonctionné pour moi alors que j'ai essayé d'installer divers paquets more_set_headers 'Server: My Very Own Server';
Vous pouvez simplement faire ce qui suit et aucune information de serveur ou de version ne sera renvoyée
si vous souhaitez simplement supprimer le numéro de version, cela fonctionne
la source
Demandez-vous la valeur de l'en-tête du serveur dans la réponse? Vous pouvez essayer de changer cela avec une directive add_header, mais je ne suis pas sûr que cela fonctionnera. http://wiki.codemongers.com/NginxHttpHeadersModule
la source