English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Dieser Beitrag erläutert die Methode zur Analyse von Zeichenfolgen in Variablen mit php parse_str. Hier ist eine Zusammenfassung für alle zur Verfügung gestellt:
Die Funktion parse_str() kann Zeichenfolgen in Variablen analysieren, was bedeutet, dass eine Art Mechanismus zur Umwandlung von Zeichenfolgen in Variablen implementiert wird, wobei Daten in Form von Zeichenfolgen während des Datenübertrags zwischen Client und Server übertragen werden, wie GET-Anfragen, und dann auf dem Server durch $_GET/$_POST und anderen globalen Variablen die Umwandlung von Zeichenfolgen in Variablen realisieren, wie: https://de.oldtoolbag.com/?index.php?var1=1&var2=2,Nachdem die Anfrage abgeschlossen ist, kann der Server $_GET['var1'] auf die Weise var1=1&var2=2Diese Zeichenfolge wird in Variablen umgewandelt. Die Funktion parse_str() kann eine ähnliche Funktion ausführen, indem sie den Wert von parse_str() $_SERVER['QUERY_STRING'] analysiert, um direkt die Umwandlung von Zeichenfolgen in Variablen zu realisieren, wie $var1。
Eins, Funktionsschema
void parse_str ( string str [, array &arr] )
Zwei, Versionskompatibilität
PHP 3, PHP 4, PHP 5
Drei, Funktionseigenschaften und Beispiele
1. Zeichenfolgenanalyse in Variablen umwandeln
<?php parse_str("var1=jb51&var2=parse_str"); echo $var1.$var2; ?>
2. Zeichenfolgenanalyse und Variablen in Arrays speichern
<?php parse_str("var1=jb51&var2=parse_str",$array); print_r($array); ?>
Ausgabe:
Array ( [var1] => jb51 [var2] => parse_str )
Erklärung: Solche Variablen in Arrays zu speichern, in PHP 4.0.3 . Erhöhen
3. Die zu analysierenden Zeichenfolgen enthalten Leerzeichen
<?php parse_str("v ar1=jb51&var 2=parse_str",$array); print_r($array); ?>
Ausgabe:
Array ( [v_ar1] => jb51 [var_2] => parse_str )
Erklärung: Direkt den Leerzeichen in Unterstriche _ umwandeln
Vier,注意事项
1. Wenn der array-Parameter nicht gesetzt ist, werden von dieser Funktion gesetzte Variablen die bereits von gleichnamigen Variablen gesetzten Variablen überschreiben.
2. Die magic_quotes_gpc-Einstellung in php.ini beeinflusst die Ausgabe dieser Funktion. Wenn sie aktiviert ist, werden die Variablen vor der parse_str()-Analyse durch addslashes() konvertiert.
3. Die parse_str() Funktion weist bei der Verarbeitung von Parametern eine Lücke auf. Angreifer können diese Lücke nutzen, um register_globals zu aktivieren und so weitere Lücken in anderen PHP-Skripten auszunutzen. Wenn parse_str() mit einem Parameter aufgerufen wird, glaubt die Funktion, dass der String als URL-Übertragungs-Request-String interpretiert wird. Aber externe Angreifer können während des Aufrufs von parse_str() viele Anfragevariablen senden, um die memory_limit-Anforderung abzubrechen. Wenn während des Aufrufs von parse_str() die Anfrage geschlossen wird, bleibt der register_globals-Tag während des gesamten Lebenszyklus des betreffenden Webserver-Prozesses geöffnet.
Interessierte Leser, die mehr über PHP erfahren möchten, können die Themen dieser Website besuchen: 'PHP String (string) Verwendungsumfassend', 'PHP Datenstrukturen und Algorithmen Anleitung', 'PHP Programmierungsalgorithmus Zusammenfassung', 'PHP Sortieralgorithmus Zusammenfassung', 'PHP häufige Durchsuchungsalgorithmen und Techniken Zusammenfassung', 'PHP Mathematik Operationen Techniken Zusammenfassung', 'PHP Array (Array) Operationen大全' und 'PHP häufige Datenbankoperationen Techniken Zusammenfassung'.
Es wird gehofft, dass die in diesem Artikel beschriebenen Inhalte für die PHP-Programmierung der Leser von Vorteil sein werden.
Erklärung: Der Inhalt dieses Artikels wurde aus dem Internet übernommen und gehört dem Urheber. Der Inhalt wurde von Internetbenutzern freiwillig beigesteuert und hochgeladen. Diese Website besitzt keine Eigentumsrechte und hat den Inhalt nicht von Hand bearbeitet. Sie übernimmt auch keine rechtlichen Verantwortlichkeiten. Wenn Sie urheberrechtlich anstößige Inhalte finden, sind Sie herzlich eingeladen, eine E-Mail an notice#w zu senden.3codebox.com (Bitte ersetzen Sie # durch @, wenn Sie eine E-Mail senden, um eine Meldung zu machen, und fügen Sie relevante Beweise bei. Sobald nachgewiesen, wird diese Website die beanstandeten urheberrechtlichen Inhalte sofort löschen.)