155 votes

Suppression de X-Powered-By

  1. Comment puis-je supprimer l'en-tête X-Powered-By en PHP ? Je suis sur un serveur Apache et j'utilise php 5.21. Je ne peux pas utiliser la fonction header_remove de php car elle n'est pas supportée par la version 5.21. J'ai utilisé Header unset X-Powered-By, cela a fonctionné sur ma machine locale, mais pas sur mon serveur de production.

  2. Si php ne supporte pas header_remove() pour ver < 5.3, y a-t-il une alternative ?

0 votes

Version PHP en production : PHP/5.2.13 Version PHP en local : PHP/5.2.11 Version d'Apache sur la production : Apache/2.2.15 (Unix) Version d'Apache en local : Apache 2.0.63 (avec MAMP sur Mac)

0 votes

Faites également attention à la œufs de Pâques .

257voto

Pekka 웃 Points 249607

Je pense que c'est contrôlé par le expose_php à l'intérieur PHP.ini :

expose_php = off

Détermine si PHP peut exposer le fait qu'il est installé sur le serveur (par exemple, en ajoutant sa signature à l'en-tête du serveur Web). Ce n'est en aucun cas une menace pour la sécurité, mais cela permet de déterminer si vous utilisez PHP sur votre serveur ou non.

Il n'y a pas de risque de sécurité direct, mais comme le note David C, exposer une version obsolète (et peut-être vulnérable) de PHP peut être une invitation pour les gens à essayer de l'attaquer.

35 votes

Il ne constitue en aucun cas une menace pour la sécurité. Cela peut être faux pour les anciennes versions de php fonctionnant sur un serveur hébergé. J'ai entendu dire que les pirates peuvent exploiter des "trous" bien documentés dans les anciennes versions. Il est préférable de cacher ce fait.....

0 votes

Ou bien annoncez que vous êtes entièrement à jour et que vous avez des correctifs et ne tentez rien de drôle.

17 votes

Être "entièrement à jour" est un faux positif. Il est préférable de désactiver complètement l'information. Il est possible qu'une version publiée hier comporte déjà une menace exposée et, selon l'agressivité de votre cycle de mise à jour, elle peut le rester pendant un certain temps. Il est préférable de les laisser dans l'ignorance. Je cache autant que je peux les versions de nginx.

80voto

Pepper Points 927

3 votes

Cette solution fonctionne à partir de php, expose_php = off ne fonctionnent pas dans les fichiers .htaccess ou php.

55voto

Gumbo Points 279147

Si vous ne pouvez pas désactiver le expose_php directive pour couper la parole à PHP (nécessite l'accès à l'interface de l'entreprise). php.ini ), vous pouvez utiliser Apache Header directive pour supprimer le champ d'en-tête :

Header unset X-Powered-By

3 votes

Cela ne fonctionne pas sur mon serveur de production. En revanche, il fonctionne sur ma machine locale. Avez-vous une idée de la raison pour laquelle cela se produit ?

0 votes

@Castor Quelles versions du serveur utilisez-vous en local et sur la machine de production ? Y a-t-il des différences dans la configuration de PHP ?

0 votes

Version PHP en production : PHP/5.2.13 Version de PHP en local : PHP/5.2.11 Version d'Apache sur la production : Apache/2.2.15 (Unix) Version d'Apache en local : Apache 2.0.63 (avec MAMP sur Mac)

26voto

how Points 950
if (function_exists('header_remove')) {
    header_remove('X-Powered-By'); // PHP 5.3+
} else {
    @ini_set('expose_php', 'off');
}

16voto

MainMa Points 10849

Si vous avez accès au fichier php.ini, définissez les paramètres suivants expose_php = Off .

3 votes

Eh bien, j'ai réussi à faire fonctionner ceci à partir du code php. header("X-Powered-By : ") ; En réglant l'en-tête X-Powered-By sur rien, cela l'a supprimé. Merci à tous pour votre temps et vos suggestions.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X