Position actuelle: Accueil> Derniers articles> Masquer ou filtrer les informations de sortie php_uname () dans l'environnement de production

Masquer ou filtrer les informations de sortie php_uname () dans l'environnement de production

M66 2025-05-18

Lors du développement et du déploiement d'applications PHP, vous devez souvent utiliser la fonction php_uname () pour obtenir les informations du système d'exploitation du système. Cette fonction renvoie le nom du système d'exploitation, le numéro de version, le nom d'hôte et d'autres informations du serveur actuel. Cependant, ces informations peuvent être exposées à des utilisateurs malveillants, ce qui menace à son tour la sécurité du système. Par conséquent, dans un environnement de production, nous devons prendre des mesures pour masquer ou filtrer les informations de sortie de la fonction php_uname () .

1. Quelle est la fonction php_uname () ?

php_uname () est une fonction PHP intégrée qui renvoie des informations pertinentes sur le système d'exploitation actuel. Son contenu de sortie comprend le nom, la version, le nom d'hôte, etc. du système d'exploitation, et le format habituel est le suivant:

 echo php_uname();

Exemple de sortie:

 Linux server1 4.15.0-123-generic #126-Ubuntu SMP Thu Nov 7 18:59:47 UTC 2019 x86_64

Ces informations peuvent être utiles aux développeurs, mais s'ils sont exposés aux utilisateurs méfiants, les attaquants peuvent utiliser ces informations pour déduire la configuration du système et les vulnérabilités potentielles.

2. Pourquoi masquer ou filtrer la sortie php_uname () ?

Les informations de sortie de php_uname () peuvent fuir le contenu sensible suivant:

  • Type et version du système d'exploitation : les attaquants peuvent utiliser ces informations pour déterminer quelles vulnérabilités peuvent affecter le système.

  • Nom de l'hôte : si le nom d'hôte est exposé, un attaquant peut être en mesure de déduire l'emplacement physique du serveur ou la topologie du réseau.

  • Version du noyau : Certaines versions du noyau ont peut-être déjà connu des vulnérabilités de sécurité, et un attaquant peut utiliser ces informations pour lancer une attaque.

Par conséquent, dans l'environnement de production, afin d'améliorer la sécurité, nous devons masquer ou filtrer la sortie de la fonction php_uname () .

3. Comment masquer ou filtrer la sortie de php_uname () ?

Méthode 1: Désactivez la fonction php_uname ()

Le moyen le plus direct consiste à désactiver la fonction via la configuration Disable_Functions de PHP. Cette méthode empêche complètement PHP_UNAME () d'être appelée.

  1. Ouvrez le fichier de configuration php.ini .

  2. Ajouter un PHP_UNAME à l'élément de configuration Disabled_Functions :

 disable_functions = php_uname
  1. Redémarrez PHP ou serveur Web pour rendre la configuration en vigueur.

Avec cette approche, tout code qui tente d'utiliser la fonction php_uname () sera bloqué de l'exécution.

Méthode 2: Modifier le contenu de sortie

Si php_uname () ne peut pas être complètement désactivé, nous pouvons également filtrer ou modifier sa sortie en écrivant du code personnalisé. Par exemple, des informations plus simples ou plus sûres peuvent être affichées en réécrivant la sortie de la fonction.

 if ($_SERVER['SERVER_NAME'] === 'production_server') {
    echo "Server Information Hidden for Security";
} else {
    echo php_uname();
}

Dans ce code, la sortie de php_uname () ne sera affichée que dans un environnement de serveur spécifique. Sinon, un message invite caché sera affiché.

Méthode 3: Utilisez .htaccess pour contrôler

Pour les serveurs Apache, certaines informations sensibles peuvent être empêchées de s'afficher via le fichier .htaccess .

Par exemple, le contrôle d'accès est effectué via mod_rewrite pour s'assurer que certaines informations sensibles ne sont pas exposées:

 <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/php_uname$
    RewriteRule .* - [F]
</IfModule>

Cette configuration rejette les demandes directes à php_uname () .

Méthode 4: Modifiez la limite Open_Basedir dans le fichier de configuration PHP

En configurant la limite Open_Basedir , vous pouvez contrôler que les scripts PHP ne peuvent accéder qu'aux répertoires spécifiques, empêchant la lecture des informations système qui ne doivent pas être exposées.

  1. Ouvrez le fichier de configuration php.ini .

  2. Configurer Open_Basedir :

 open_basedir = /path/to/your/application:/path/to/other/allowed/directories

Cette configuration limitera les scripts PHP pour accéder uniquement aux répertoires spécifiés, évitant ainsi la fuite d'informations sensibles au système.

4. Résumé

Pour améliorer la sécurité des applications PHP dans les environnements de production et empêcher la fonction php_uname () de fuir les informations sensibles au système, vous pouvez choisir de désactiver la fonction, de modifier le contenu de sortie ou d'utiliser des fichiers de configuration et des méthodes de contrôle d'accès pour la restreindre. La meilleure façon de le faire est de combiner plusieurs méthodes pour garantir que les informations sensibles ne sont pas exposées aux utilisateurs non fiables.