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.
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.
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 () .
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.
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
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.
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);