Heim Backend-Entwicklung PHP-Tutorial Einfache Analyse der Ausführungsfunktionen von PHP-Systemprogrammen (System, Durchgang, Exec) (mit Code)

Einfache Analyse der Ausführungsfunktionen von PHP-Systemprogrammen (System, Durchgang, Exec) (mit Code)

Aug 03, 2018 am 11:43 AM

Dieser Artikel stellt Ihnen eine einfache Analyse der PHP-Systemprogrammausführungsfunktionen (System, Durchgang, Exec) vor (mit Code). Ich hoffe, dass er hilfreich ist Du hast geholfen.

exec – ein externes Programm ausführen

string exec ( string $command [, array &$output [, int &$return_var ]] )

Beispiel

<?php
        echo exec("ls",$output);
        echo "</br>";
        print_r($file);
?>
Nach dem Login kopieren

Ausführungsergebnis:

test.php
Array( [0] => index.php [1] => test.php)

Analyse:
exec gibt das Ausführungsergebnis nicht aktiv zurück, sondern nur die letzte Zeile des Ergebnisses;
Wenn Sie das vollständige Ergebnis erhalten möchten, benötigen Sie einen zweiten Parameter, um es an auszugeben Das angegebene Array stellt eine Ausgabezeile dar. Wenn verschiedene externe Systembefehle wiederholt ausgeführt werden, wird das unset()-Array bei der Ausgabe der Ergebnisse jedes externen Systembefehls gelöscht, um Verwirrung zu vermeiden Der Parameter wird verwendet, um die Befehlsausführung zu erhalten. Der Statuscode gibt normalerweise 0 zurück, wenn die Ausführung erfolgreich ist.

passthru – Führen Sie ein externes Programm aus und zeigen Sie die Rohausgabe an

void passthru ( string $command [, int &$return_var ] )

Beispiel

<?php
        passthru("ls");
?>
Nach dem Login kopieren

Ausführungsergebnis:


index.phptest.php

Analyse:

Ähnlich wie die exec()-Funktion wird sie auch zur externen Ausführung verwendet Befehle, aber direkt Das Ergebnis wird an den Browser ausgegeben (Rohausgabe ohne Verarbeitung), ohne Rückgabewert
Verwenden Sie diese Funktion, wenn Binärdaten ausgegeben und direkt an den Browser gesendet werden müssen, z. B. direkt Ausgabe des Bildstreams Befehl;

system – Führen Sie ein externes Programm aus und zeigen Sie die Ausgabe an

Stringsystem ( string $command [, int &$return_var ] )

<?php
        system(&#39;ls&#39;, $retval);
?>
Nach dem Login kopieren

Analyse:

Geben Sie die Ergebnisse direkt an den Browser aus.
Der zweite Parameter ist der Rückgabestatus nach der Ausführung des externen Befehls.
Geben Sie bei Erfolg die letzte Zeile der Befehlsausgabe zurück Geben Sie FALSE zurück, wenn es fehlschlägt.
Wenn PHP im Servermodul ausgeführt wird und die Funktion system() auch versucht, den Ausgabecache des Webservers nach jeder Ausgabezeile automatisch zu aktualisieren.

shell_exec – Führen Sie den Befehl über die Shell-Umgebung aus und geben Sie die vollständige Ausgabe als Zeichenfolge zurück.

Erklärung

String Shell_exec (String $cmd)
Der Backtick-Operator „`“ hat die gleiche Wirkung wie die Funktion Shell_exec().
Rückgabewert von shell_exec
Wenn während der Prozessausführung ein Fehler auftritt oder der Prozess keine Ausgabe erzeugt, wird NULL zurückgegeben. Daher kann die Verwendung dieser Funktion anhand des Rückgabewerts nicht erkennen, ob der Prozess erfolgreich ausgeführt wurde. Wenn Sie den Exit-Code einer Prozessausführung überprüfen müssen, verwenden Sie die Funktion exec().

Beispiel

<?php
$output = `ls -al`;
echo "<pre class="brush:php;toolbar:false">$output
"; ?>
Nach dem Login kopieren

Hinweis:

Der Backtick-Operator hat keine Wirkung, wenn der abgesicherte Modus aktiviert oder shell_exec() deaktiviert ist.
Im Gegensatz zu einigen anderen Sprachen können Backticks nicht in Zeichenfolgen in doppelten Anführungszeichen verwendet werden.

Beispiel #1 Shell_exec()-Routine

Diese Funktion kann nicht verwendet werden, wenn PHP im abgesicherten Modus ausgeführt wird.

<?php
$output = shell_exec(&#39;ls -lart&#39;);
echo "<pre class="brush:php;toolbar:false">$output
"; ?>
Nach dem Login kopieren

escapeshellargBeschreibung
string escapeshellarg ( string $arg )
escapeshellarg() fügt der Zeichenfolge ein einfaches Anführungszeichen hinzu und kann jedes vorhandene The in Anführungszeichen setzen oder maskieren Das Vorhandensein einfacher Anführungszeichen stellt sicher, dass eine Zeichenfolge direkt an die Shell-Funktion übergeben werden kann und dennoch sicher ist. Diese Funktion sollte für einige vom Benutzer eingegebene Parameter verwendet werden. Zu den Shell-Funktionen gehören die Ausführungsoperatoren exec() und system().

Parameter

arg
Der Parameter, der transkodiert werden muss.

Rückgabewert

String nach der Konvertierung.

Beispiel

<?php
system(&#39;ls &#39;.escapeshellarg($dir));
?>
Nach dem Login kopieren

escapeshellcmdErklärung
string escapeshellcmd ( string $command )
escapeshellcmd() kann Shell-Befehle in Zeichenfolgen betrügen, die Escape-Zeichen enthalten beliebige Befehle ausführen. Diese Funktion stellt sicher, dass vom Benutzer eingegebene Daten maskiert werden, bevor sie an die Funktion exec() oder system() oder den Ausführungsoperator übergeben werden.

Backslash() wird vor den folgenden Zeichen eingefügt: &#;`|*?~<>^()[]{}$, x0A und xFF. ' und " werden nur maskiert, wenn sie nicht übereinstimmen. Auf Windows-Plattformen werden alle diese Zeichen sowie die Zeichen % und ! durch Leerzeichen ersetzt.

Parameter
Befehl
Der Befehl zum Escape.

Rückgabewert

Escape-String-Beispiel

<?php
// 我们故意允许任意数量的参数
$command = &#39;./configure &#39;.$_POST[&#39;configure_options&#39;];
$escaped_command = escapeshellcmd($command);
 
system($escaped_command);
?>
Nach dem Login kopieren
Warnung

escapeshellcmd() sollte auch für den gesamten Befehlsstring verwendet werden. In diesem Fall kann der Angreifer immer noch eine beliebige Anzahl von Parametern übergeben die Funktion escapeshellarg(), um einen einzelnen Parameter zu maskieren

Empfohlene verwandte Artikel:

Beispielcode für die Methode _get in PHP

Zusammenfassung verschiedener Möglichkeiten, Dateien in PHP (mit Code) zu bedienen

Das obige ist der detaillierte Inhalt vonEinfache Analyse der Ausführungsfunktionen von PHP-Systemprogrammen (System, Durchgang, Exec) (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Erklären Sie JSON Web Tokens (JWT) und ihren Anwendungsfall in PHP -APIs. Apr 05, 2025 am 12:04 AM

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Beschreiben Sie die soliden Prinzipien und wie sie sich für die PHP -Entwicklung anwenden. Apr 03, 2025 am 12:04 AM

Die Anwendung des soliden Prinzips in der PHP -Entwicklung umfasst: 1. Prinzip der Einzelverantwortung (SRP): Jede Klasse ist nur für eine Funktion verantwortlich. 2. Open and Close Principle (OCP): Änderungen werden eher durch Erweiterung als durch Modifikation erreicht. 3.. Lischs Substitutionsprinzip (LSP): Unterklassen können Basisklassen ersetzen, ohne die Programmgenauigkeit zu beeinträchtigen. 4. Schnittstellen-Isolationsprinzip (ISP): Verwenden Sie feinkörnige Schnittstellen, um Abhängigkeiten und nicht verwendete Methoden zu vermeiden. 5. Abhängigkeitsinversionsprinzip (DIP): Hoch- und niedrige Module beruhen auf der Abstraktion und werden durch Abhängigkeitsinjektion implementiert.

Erklären Sie das Konzept der späten statischen Bindung in PHP. Erklären Sie das Konzept der späten statischen Bindung in PHP. Mar 21, 2025 pm 01:33 PM

In Artikel wird die in PHP 5.3 eingeführte LSB -Bindung (LSB) erörtert, die die Laufzeitauflösung der statischen Methode ermöglicht, um eine flexiblere Vererbung zu erfordern. Die praktischen Anwendungen und potenziellen Perfo von LSB

Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Wie setze ich nach dem Neustart des Systems automatisch Berechtigungen von Unixsocket fest? Mar 31, 2025 pm 11:54 PM

So setzen Sie die Berechtigungen von Unixsocket automatisch nach dem Neustart des Systems. Jedes Mal, wenn das System neu startet, müssen wir den folgenden Befehl ausführen, um die Berechtigungen von Unixsocket: sudo ...

Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Wie sende ich eine Postanforderung mit JSON -Daten mithilfe der Curl -Bibliothek von PHP? Apr 01, 2025 pm 03:12 PM

Senden von JSON -Daten mithilfe der Curl -Bibliothek von PHP in der PHP -Entwicklung müssen häufig mit externen APIs interagieren. Eine der gängigen Möglichkeiten besteht darin, die Curl Library zu verwenden, um Post � ...

Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Rahmensicherheitsmerkmale: Schutz vor Schwachstellen. Mar 28, 2025 pm 05:11 PM

In Artikel werden wichtige Sicherheitsfunktionen in Frameworks erörtert, um vor Schwachstellen zu schützen, einschließlich Eingabevalidierung, Authentifizierung und regelmäßigen Aktualisierungen.

Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Anpassung/Erweiterung von Frameworks: So fügen Sie benutzerdefinierte Funktionen hinzu. Mar 28, 2025 pm 05:12 PM

In dem Artikel werden Frameworks hinzugefügt, das sich auf das Verständnis der Architektur, das Identifizieren von Erweiterungspunkten und Best Practices für die Integration und Debuggierung hinzufügen.

See all articles