Heim > Artikel > Backend-Entwicklung > PHP-Code-Prüfung – 2. Einführung in die PHP-Umgebung der PHP-Code-Prüfung
Der Inhalt dieses Artikels ist eine Einführung in die PHP-Umgebung. Interessierte Freunde können einen Blick darauf werfen und Studenten, die Hilfe benötigen, Hinweise geben
Die Ergebnisse der Codeausführung in verschiedenen Umgebungen werden sehr unterschiedlich sein. Es kann an einem Konfigurationsproblem liegen, das eine sehr risikoreiche Sicherheitslücke ausnutzen kann Möglicherweise haben Sie es gefunden. Eine Sicherheitslücke wird durch Ihr Konfigurationsproblem verursacht, das dazu führt, dass Sie für längere Zeit keinen erfolgreichen Exploit-Code erstellen können. Allerdings können die Konfigurationsanweisungen in verschiedenen PHP-Versionen unterschiedlich sein. In der neuen Version können einige Anweisungen hinzugefügt oder die Standardeinstellungen geändert werden. Daher müssen wir uns vor der Codeprüfung sehr gut auskennen Die Kernanweisungen der Konfigurationsdatei in der Version können qualitativ hochwertige Schwachstellen effizient ermitteln.
常量 | 含义 |
PHP__INI__USER | 该配置选项可以再用户的PHP脚本或Windows注册表中设置 |
PHP__INI__PERDIR | 该配置选项可以再php.ini ..htaccess或http.conf中设置 |
PHP__INI__SYSTEM | 该设置选项可以在php.ini或http.conf中设置 |
PHP__INI__ALL | 该配置选项可在任何地方设置 |
php.ini only | 该设置选项仅可在php.ini中设置 |
PHP verfügt über Hunderte von Konfigurationsdateianweisungen, daher werde ich sie hier nicht einzeln vorstellen. Wenn Sie an diesem Aspekt interessiert sind, können Sie den spezifischen Inhalt in der offiziellen PHP-Konfigurationsdokumentation überprüfen: http://www. php.net/manual/zh/ini.list.php
(1) open_basedir-Einstellungen
open_basedir kann einschränken Anwendungen Überprüfen Sie für Verzeichnisse, auf die zugegriffen werden kann, ob open_basedir festgelegt ist. Einige werden natürlich über den Webserver festgelegt, z. B. php_admin_value von Apache, nginx + fcgi wird über conf gesteuert.
(2) Einstellung „allow_url_fopen“
Wenn „allow_url_fopen=ON“ ist, kann PHP Remote-Dateien für den Betrieb lesen, was von Angreifern leicht ausgenutzt werden kann.
(3) Einstellung „allow_url_include“
Wenn „allow_url_include=ON“ ist, kann PHP Remote-Dateien einschließen, was zu schwerwiegenden Sicherheitslücken führt.
(4) Einstellung „safe_mode_exec_dir“
Diese Option kann das Verzeichnis externer Befehle steuern, die von PHP aufgerufen werden können. Wenn im PHP-Programm externe Befehle aufgerufen werden, Dann sind die externen Befehle bekannt. Das Verzeichnis kann Programmrisiken kontrollieren.
(5) magic_quote_gpc-Einstellung
Diese Option kann die in den Parametern übermittelten Sonderzeichen maskieren. Es wird empfohlen, magic_quote_gpc=ON
(6) Register_globals-Einstellung
Das Einschalten dieser Option führt dazu, dass PHP alle extern übermittelten Variablen als globale Variablen registriert, und die Folgen sind ziemlich schwerwiegend.(7) Safe_Mode-Einstellung
Safe_Mode ist eine wichtige Sicherheitsfunktion von PHP. Es wird empfohlen, sie zu aktivieren(8 ) session_use_trans_sid-Einstellung
Wenn session_use_trans_sid aktiviert ist, führt dies dazu, dass PHP die Sitzungs-ID über die URL weitergibt, was es einem Angreifer leicht macht, die aktuelle Sitzung zu kapern oder den Benutzer zur Verwendung zu verleiten eine bestehende Sitzung, die vom Angreifer kontrolliert wird.(9) display_errors-Einstellung
Wenn diese Option aktiviert ist, gibt PHP alle Fehler- oder Warninformationen aus, und Angreifer können diese Informationen verwenden, um den Web-Root-Pfad abzurufen usw. Sensible Informationen.(10) Einstellung „exposure_php“
Wenn die Option „exposure_php“ aktiviert ist, enthält jede von PHP generierte Antwort bei der Interpretation die PHP-Version, die auf dem Hostsystem installiert ist. Wenn ein Angreifer weiß, welche PHP-Version auf einem Remote-Server läuft, kann er bekannte Exfiltrationsmethoden gegen das System aufzählen, was die Chance auf einen erfolgreichen Angriff erheblich erhöht.(11) magic_quotes_sybase (automatische Filterung von magischen Zitaten)
Die Direktive „magic_quotes_sybase“ wird zum automatischen Filtern von Sonderzeichen verwendet überschrieben. Die Konfiguration von magic_quotes_gpc=on, das heißt, die rechtzeitige Konfiguration von gpc=on hat keine Auswirkung. Was dieser Befehl mit gpc gemeinsam hat, ist, dass die verarbeiteten Objekte gleich sind, das heißt, beide verarbeiten POSTGETCookie.
(12) unlock_functions (Funktion deaktivieren)
Um PHP sicherer auszuführen, können Sie in einer formalen Produktionsumgebung auch die Anweisung „disable_functions“ verwenden, um einige zu deaktivieren sensible Nutzungsfunktionen. Wenn Sie diese Direktive verwenden möchten, um einige gefährliche Funktionen zu sperren, denken Sie daran, die Funktion dl() zur Verbotsliste hinzuzufügen, da Angreifer die Funktion dl() zum Laden benutzerdefinierter PHP-Erweiterungen verwenden können, um die Einschränkungen der Anweisung „disable_function“ zu durchbrechen. Verwandte Empfehlungen:PHP-Code-Audit (1) -----Debugging-Funktion
Das obige ist der detaillierte Inhalt vonPHP-Code-Prüfung – 2. Einführung in die PHP-Umgebung der PHP-Code-Prüfung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!