Aktueller Standort: Startseite> Neueste Artikel> Ausblenden oder Filter php_uname () Ausgabeinformationen in der Produktionsumgebung ausblenden oder filtern

Ausblenden oder Filter php_uname () Ausgabeinformationen in der Produktionsumgebung ausblenden oder filtern

M66 2025-05-18

Bei der Entwicklung und Bereitstellung von PHP -Anwendungen müssen Sie häufig die Funktion PHP_uname () verwenden, um die Betriebssysteminformationen des Systems zu erhalten. Diese Funktion gibt den Betriebssystemnamen, die Versionsnummer, den Hostnamen und die anderen Informationen des aktuellen Servers zurück. Diese Informationen können jedoch böswilligen Nutzern ausgesetzt sein, was wiederum die Sicherheit des Systems bedroht. Daher müssen wir in einer Produktionsumgebung Maßnahmen ergreifen, um die Ausgabeinformationen der Funktion php_uname () zu verbergen oder zu filtern.

1. Was ist die Funktion php_uname () ?

php_uname () ist eine integrierte PHP-Funktion, die relevante Informationen zum aktuellen Betriebssystem zurückgibt. Der Ausgabeinhalt enthält den Namen, die Version, den Hostnamen usw. des Betriebssystems, und das übliche Format lautet wie folgt:

 echo php_uname();

Ausgangsbeispiel:

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

Diese Informationen können für Entwickler nützlich sein. Wenn sie jedoch misstrauischen Benutzern ausgesetzt sind, können Angreifer diese Informationen verwenden, um die Konfiguration und die potenziellen Schwachstellen des Systems zu schließen.

2. Warum verbergen oder filtern php_uname () output?

Die Ausgabeinformationen von PHP_uname () können den folgenden sensiblen Inhalt auslaufen:

  • Betriebssystemtyp und -version : Angreifer können diese Informationen verwenden, um festzustellen, welche Schwachstellen das System beeinflussen können.

  • Hostname : Wenn der Hostname ausgesetzt ist, kann ein Angreifer möglicherweise auf den physischen Standort des Servers oder der Netzwerk -Topologie schließen.

  • Kernelversion : Einige Kernelversionen haben möglicherweise bereits Sicherheitslücken bekannt, und ein Angreifer kann diese Informationen verwenden, um einen Angriff zu starten.

Daher müssen wir in der Produktionsumgebung, um die Sicherheit zu verbessern, die Ausgabe der Funktion php_uname () ausblenden oder filtern.

3 ..

Methode 1: Deaktivieren Sie die Funktion php_uname ()

Am direktesten ist es, die Funktion durch die Konfiguration von PHP zu deaktivieren . Diese Methode verhindert, dass Php_uname () aufgerufen wird.

  1. Öffnen Sie die Konfigurationsdatei php.ini .

  2. Fügen Sie dem Konfigurationselement dentabled_functions php_uname hinzu:

 disable_functions = php_uname
  1. Starten Sie PHP oder Webserver neu, damit die Konfiguration wirksam wird.

Bei diesem Ansatz wird jeder Code, der versucht, die Funktion von PHP_uname () zu verwenden, aus der Ausführung blockiert.

Methode 2: Ändern Sie den Ausgangsinhalt

Wenn php_uname () nicht vollständig deaktiviert werden kann, können wir die Ausgabe auch filtern oder ändern, indem wir benutzerdefinierten Code schreiben. Beispielsweise können einfachere oder sicherere Informationen angezeigt werden, indem die Ausgabe der Funktion neu geschrieben wird.

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

In diesem Code wird die Ausgabe von PHP_uname () nur in einer bestimmten Serverumgebung angezeigt. Andernfalls wird eine versteckte Eingabeaufforderung angezeigt.

Methode 3: Verwenden Sie .htaccess zur Kontrolle

Für Apache -Server können einige sensible Informationen aus der Datei .htaccess blockiert werden.

Beispielsweise wird die Zugriffskontrolle über mod_rewrite durchgeführt, um sicherzustellen, dass bestimmte sensible Informationen nicht aufgedeckt werden:

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

Diese Konfiguration lehnt direkte Anforderungen an php_uname () ab.

Methode 4: Ändern Sie das Limit Open_Basedir in der PHP -Konfigurationsdatei

Durch die Konfiguration des Open_Basedir -Limits können Sie steuern, dass PHP -Skripte nur auf bestimmte Verzeichnisse zugreifen können, um das Lesen von Systeminformationen zu verhindern, die nicht aufgedeckt werden sollten.

  1. Öffnen Sie die Konfigurationsdatei php.ini .

  2. Konfigurieren Sie Open_Basedir :

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

Diese Konfiguration beschränkt PHP-Skripte auf nur angegebene Verzeichnisse und vermeidet so die Leckage systemempfindlicher Informationen.

4. Zusammenfassung

Um die Sicherheit von PHP -Anwendungen in Produktionsumgebungen zu verbessern und zu verhindern, dass die Funktion von PHP_uname () systemempfindliche Informationen austritt, können Sie die Funktion deaktivieren, den Ausgabeinhalt ändern oder Konfigurationsdateien und Zugriffssteuerungsmethoden verwenden, um sie einzuschränken. Der beste Weg, dies zu tun, besteht darin, mehrere Methoden zu kombinieren, um sicherzustellen, dass vertrauliche Informationen nicht nicht vertrauenswürdige Benutzer ausgesetzt sind.