Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Code-Prüfung – 2. Einführung in die PHP-Umgebung der PHP-Code-Prüfung

PHP-Code-Prüfung – 2. Einführung in die PHP-Umgebung der PHP-Code-Prüfung

不言
不言Original
2018-04-04 14:39:231785Durchsuche

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


Vorwort


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_*-Konstanten


常量 含义
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

Gemeinsame Grundeinstellungen für 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn