Aktueller Standort: Startseite> Neueste Artikel> So verhindern Sie, dass Benutzer serverempfindliche Informationen über Php_uname erhalten ()

So verhindern Sie, dass Benutzer serverempfindliche Informationen über Php_uname erhalten ()

M66 2025-06-02

In PHP gibt die Funktion PHP_uname () die Betriebssysteminformationen des Servers einschließlich der Kernel -Version, des Betriebssystemtyps und des Hostnamens zurück. Diese Informationen bilden potenzielle Risiken für die Sicherheit des Servers, und Angreifer können diese Informationen verwenden, um potenzielle Schwachstellen zu lokalisieren oder den Server weiter anzugreifen. Daher ist es wichtig, diese sensiblen Informationen zu schützen.

1. Deaktivieren Sie die Funktion php_uname ()

Der direkteste Weg besteht darin, die Funktion php_uname () zu deaktivieren. Dies kann erreicht werden, indem die PHP -Konfigurationsdatei php.ini geändert wird. Die spezifischen Operationen sind wie folgt:

  • Öffnen Sie die Php.ini -Datei.

  • Finden und setzen Sie den Parameter deaktiviert_functions und fügen Sie der Liste php_uname hinzu.

Zum Beispiel:

 disable_functions = php_uname

Nach dem Deaktivieren dieser Funktion gibt jeder Code, der versucht, PHP_uname () zu verwenden, einen Fehler zurück, wodurch einhöre sensible Informationen vermieden werden.

2. Verwenden Sie die Suhosin -Erweiterung

Suhosin ist eine Sicherheitsverlängerung für PHP, die die PHP -Sicherheit verbessert. Durch die Verwendung von Suhosin können einige empfindliche PHP -Funktionen eingeschränkt werden, einschließlich PHP_uname () .

Nachdem Suhosin installiert und aktiviert wurde, können Sie bestimmte gefährliche PHP -Funktionen deaktivieren oder bestimmte Vorgänge durch Konfigurationsdateien einschränken. Zum Beispiel in der Konfigurationsdatei von suhosin.ini :

 suhosin.executor.func.blacklist = php_uname

Auf diese Weise verhindert Suhosin die Ausführung von PHP_uname () .

3.. Steuerungsausgangsberechtigungen

Wenn Sie aus irgendeinem Grund php_uname () verwenden müssen, stellen Sie sicher, dass der Benutzer auf diese Ausgabe nicht direkt zugreifen kann. Anstatt es dem Benutzer direkt vorzustellen, können Sie die Berechtigungsverwaltung verwenden oder vertrauliche Informationen in eine Protokolldatei ausgeben. Beispielsweise kann die Ausgabe in einem Skript gesteuert werden, sodass nur Administratoren oder bestimmte Benutzer auf diese Informationen zugreifen können.

4. Ändern Sie die Standardkonfiguration, um übermäßige Informationen zu verhindern

Um das Leckagenrisiko weiter zu verringern, wird empfohlen, die Standardkonfiguration von PHP zu ändern, um die Rückgabe detaillierter Systeminformationen zu vermeiden. Sie können durchgesickerte Informationen reduzieren, indem Sie die folgenden Optionen festlegen:

  • ERROR_REPORTING : Passen Sie die Fehlerberichterstattung an, um die Ausgabe sensibler Fehlermeldungen zu vermeiden.

  • Display_Errors : Fehleranzeige deaktivieren und nur Fehlerprotokolle werden protokolliert.

 display_errors = Off
error_reporting = E_ALL & ~E_NOTICE

5. Stärken der Serversicherheit

Zusätzlich zu Modifikationen auf Code-Ebene können Sie auch mit der Gesamtversorgungssicherheit beginnen. Hier sind einige zusätzliche Maßnahmen:

  • Aktualisieren Sie das Betriebssystem und die PHP -Version : Aktualisieren Sie das Betriebssystem und die PHP -Version regelmäßig, um sicherzustellen, dass alle bekannten Schwachstellen festgelegt werden.

  • Datei- und Verzeichnisberechtigungen : Stellen Sie die entsprechenden Berechtigungen für Dateien und Verzeichnisse fest, um sicherzustellen, dass nur autorisierte Benutzer auf sensible Dateien zugreifen können.

  • Verwenden von Firewall : Bereiten Sie eine Firewall bereit, um den externen Zugriff auf den Server zu begrenzen.

  • Überwachungssystemaktivitäten : Überwachen Sie die Systemaktivitäten regelmäßig und erkennen Sie abnormale Verhaltensweisen umgehend.

6. Verwenden Sie den entsprechenden URL -Ersatz

In einigen Fällen können einige Funktionen von PHP mit externen URLs (z. B. Datei_get_Contents () , Curl usw.) interagieren, und Sie müssen sicherstellen, dass die Domain -Namen dieser URLs durch vertrauenswürdige Domain -Namen ersetzt werden. Unter der Annahme, dass die ursprüngliche URL http://example.com/sensitive_data ist, können Sie vermeiden, die tatsächlichen Domänennameninformationen zu verlassen, indem Sie den Domänennamen durch m66.net ersetzen.

Zum Beispiel der ursprüngliche Code:

 $url = "http://example.com/sensitive_data";
$response = file_get_contents($url);

Nach der Änderung:

 $url = "http://m66.net/sensitive_data";
$response = file_get_contents($url);