Inhaltsverzeichnis
Was sind Superglobals?
$_REQUEST : Bequemlichkeit mit einer Sicherheitsvorbehalt
$_SESSION : Verwalten des Staates über Anfragen hinweg hinweg
$_COOKIE : Client-Seite-Speicher lesen
$_SERVER : Metadaten über die Anfrage und Umgebung
$_FILES : Datei -Uploads behandeln
$_ENV und $GLOBALS : Umwelt und globaler Umfang
$_ENV
$GLOBALS
Sicherheitserinnerungen bei der Verwendung von Superglobals
Letzte Gedanken
Heim Backend-Entwicklung PHP-Tutorial Ein tiefes Eintauchen in PHP Superglobals: Beyond `$ _get` und` $ _post`

Ein tiefes Eintauchen in PHP Superglobals: Beyond `$ _get` und` $ _post`

Jul 26, 2025 am 09:41 AM
PHP Variables

PHP Superglobals umfassen $ _get, $ _post, $ _Request, $ _Session, $ _cookie, $ _server, $ _files, $ _env und $ global, die jeweils unterschiedliche Zwecke dienen, die über die nur den nur Handlingsformulardaten hinausgehen. Sie ermöglichen die staatliche Verwaltung, Serverinteraktion und den Zugriff auf Umgebungen. 1. $ _Request kombiniert $ _get, $ _post und $ _cookie, stellt jedoch Sicherheitsrisiken aufgrund der Eingabequelle ein, sodass es vermieden werden sollte, sofern dies nicht erforderlich ist. 2. $ _Session verwaltet den Benutzerzustand über Anfragen hinweg nach dem Aufrufen von Session_start (), wobei Best Practices für Sicherheitsvorschriften einschließlich der Vermeidung sensibler Datenspeicherung und Verwendung von Session_regenerate_id () nach dem Login zur Verhinderung von Fixierungsangriffen verwendet werden. 3.. 4.. $ _Server bietet Anforderungs- und Umgebungsmetadaten wie Request_Method, Remote_Addr und http_user_agent, aber Werte wie http_referer und http_user_agent sollten nicht vertrauenswürdig sein, da sie ausgefallen sind. 5. $ _files verarbeitet das Upload von Dateien, indem er auf temporäre Dateidaten zugreift und Fehlerprüfungen, MIME -Validierung und sichere Speicher außerhalb des Webroots erfordern, um Ausführungsrisiken zu verhindern. 6. $ _env greifen auf Umgebungsvariablen zu, wenn es in php.ini aktiviert ist, obwohl moderne Anwendungen in der Regel .Env -Dateien mit dedizierten Ladern verwenden. 7. $ globals enthüllt alle globalen Variablen und ist hauptsächlich nützlich, um den globalen Zustand innerhalb von Funktionen zu debugieren oder zu ändern. Zu den Best Practices der Sicherheit gehören die Validierung und Desinfektion aller Eingaben von Superglobals, unter Verwendung von vorbereiteten Anweisungen für SQL -Abfragen, die Ausgabe von HTMLSpecialChars (), um XSSS zu verhindern, und die Superglobaldaten niemals als vertrauenswürdige, Engagement robuse und sichere PHP -Anwendungen zu behandeln.

Ein tiefes Eintauchen in PHP Superglobals: Beyond `$ _get` und` $ _post`

Wenn die meisten Entwickler an PHP -Superglobale denken, springen ihre Gedanken direkt auf $_GET und $_POST - und aus gutem Grund. Dies sind die Arbeitspferde der Form des Formularhandlings und der URL -Parameterverarbeitung in Webanwendungen. Aber die Superglobals von PHP gehen weit über nur Daten an. Wenn Sie das vollständige Satz von Superglobals verstehen, können Sie einen tieferen Einblick in die Verwaltung von Status, die Verarbeitung von Sitzungen und die Interaktion mit der Serverumgebung erhalten. Schauen wir uns alle Superglobale genauer an und wie sie effektiv und sicher verwendet werden können.

Ein tiefes Eintauchen in PHP Superglobals: Beyond `$ _get` und` $ _post`

Was sind Superglobals?

Superglobale sind integrierte PHP-Variablen, die unabhängig vom Umfang immer zugänglich sind. Sie können sie in Funktionen, Klassen oder überall in Ihrem Skript verwenden, ohne sie globalisiert zu müssen. Sie beginnen mit einem $ und einem Unterstrich wie $_GET und werden von PHP vordefiniert.

Die vollständige Liste der Superglobals enthält:

Ein tiefes Eintauchen in PHP Superglobals: Beyond `$ _get` und` $ _post`
  • $_GET
  • $_POST
  • $_REQUEST
  • $_SESSION
  • $_COOKIE
  • $_SERVER
  • $_FILES
  • $_ENV
  • $GLOBALS

Wir werden über die Grundlagen hinausgehen und die weniger verwendeten und ihre praktischen Anwendungen erkunden.


$_REQUEST : Bequemlichkeit mit einer Sicherheitsvorbehalt

$_REQUEST ist ein fusioniertes Array, das den Inhalt von $_GET , $_POST und $_COOKIE enthält (in dieser Reihenfolge standardmäßig). Dies bedeutet, wenn ein Schlüssel in mehr als einer Quelle vorhanden ist, überschreibt der spätere den früheren.

Ein tiefes Eintauchen in PHP Superglobals: Beyond `$ _get` und` $ _post`
 // Wenn? Name = alice in der URL ist und ein Formular postname = bob
echo $ _Request ['Name']; // Ausgibt 'Bob'

Warum es riskant ist: Da $_REQUEST aus mehreren Eingangsquellen stammt, kann es Ihre Anwendung weniger vorhersehbar und anfälliger für Injektionsangriffe machen, wenn sie nicht sorgfältig gefiltert werden.

? Best Practice: Vermeiden Sie $_REQUEST es sei denn, Sie benötigen speziell ein input-agnostisches Handling. Bevorzugen Sie $_GET oder $_POST um explizit darüber zu sein, woher Daten stammen.


$_SESSION : Verwalten des Staates über Anfragen hinweg hinweg

HTTP ist staatenlos, aber $_SESSION hilft dabei, den Benutzerzustand über Seiten hinweg aufrechtzuerhalten. Es speichert Daten auf dem Server und assoziiert sie mit einem Benutzer über eine Sitzungs -ID (normalerweise in einem Cookie gespeichert).

 Session_Start ();
$ _Session ['user_id'] = 123;
$ _Session ['loggd_in'] = true;

Schlüsselpunkte:

  • Call Session_Start () immer auf $_SESSION auf call session_start() aufzurufen.
  • Sitzungsdaten bleiben bestehen, bis die Sitzung zerstört oder abläuft.
  • Speichern Sie niemals sensible Daten wie Passwörter in Sitzungen - nur Kennungen.

? Sicherheitstipp: Session -IDs nach Anmeldung mit session_regenerate_id() regenerieren, um die Sitzungsfixierungsangriffe zu verhindern.


Cookies sind kleine Daten, die am Client gespeichert sind. $_COOKIE lässt sie in PHP lesen.

 if (isset ($ _ cookie ['thema'])) {
    Echo 'bevorzugtes Thema:'. $ _Cookie ['thema'];
}

Verwenden Sie setcookie() (nicht $_COOKIE -das ist schreibgeschützt), um ein Cookie festzulegen, um setCookie () zu verwenden:

 setcookie ('thema', 'dark', time () (86400 * 30)); // 30 Tage

? Sicherheitshinweise: Verwenden Sie die Flaggen httponly und secure wenn Sie Cookies einstellen, um XSS- und MITM -Risiken zu reduzieren:

 setcookie ('session_id', $ token, [
    'abläuft' => time () 3600,
    'Pfad' => '/',
    'Secure' => true,
    'httponly' => true,
    'samesit' => 'streng' '
]);

$_SERVER : Metadaten über die Anfrage und Umgebung

Dieses Superglobal enthält Informationen zu Header, Pfaden und Servereinstellungen. Es ist schreibgeschützt und vom Webserver besiedelt.

Häufige nützliche Schlüssel:

  • $_SERVER['REQUEST_METHOD'] - Get, Post usw.
  • $_SERVER['HTTPS'] - Überprüfen Sie, ob die Verbindung sicher ist
  • $_SERVER['REMOTE_ADDR'] - Client IP -Adresse
  • $_SERVER['HTTP_USER_AGENT'] - Browserinformationen
  • $_SERVER['SCRIPT_NAME'] - Aktueller Skriptpfad
  • $_SERVER['HTTP_REFERER'] - vorherige Seite (Beachten Sie die Fehlscheibe)
 if ($ _server ['request_method'] === 'post') {
    // Prozessform
}

⚠️ Vorsicht: Vertrauen Sie niemals $_SERVER -Werte blind. HTTP_USER_AGENT und HTTP_REFERER können gefälscht werden. Verwenden Sie sie zur Protokollierung oder Analyse, nicht zur Authentifizierung.


$_FILES : Datei -Uploads behandeln

Wenn ein Formular enctype="multipart/form-data" verwendet, sind hochgeladene Dateien in $_FILES verfügbar.

Ein typisches Datei -Upload -Array sieht aus wie:

 $ _Files ['avatar'] = [
    'name' => 'foto.jpg',
    'Typ' => 'Bild/JPEG',
    'TMP_NAME' => '/TMP/PHP/PHP58UT12',
    'Größe' => 98123,
    'Fehler' => 0
];

Um die hochgeladene Datei zu verschieben:

 if ($ _files ['avatar'] ['Fehler'] === Upload_err_ok) {
    $ tmp_name = $ _files ['avatar'] ['tmp_name'];
    $ upload_dir = 'Uploads/';
    move_uploaded_file ($ tmp_name, $ upload_dir. BasisName ($ _ files ['avatar'] ['name']));
}

Best Practices:

  • Überprüfen Sie immer $_FILES['field']['error'] zuerst.
  • Validieren Sie den Dateityp mit mime_content_type() oder fileInfo, nicht nur der Erweiterung.
  • Speichern Sie Uploads außerhalb des Web -Roots oder beschränken Sie den direkten Zugriff.

$_ENV und $GLOBALS : Umwelt und globaler Umfang

$_ENV

Enthält Umgebungsvariablen, die an PHP übergeben wurden. Oft leer, es sei denn, variables_order in php.ini enthält 'e'.

 echo $ _env ['db_host'] ?? 'localhost';

Die meisten modernen Apps verwenden .env -Dateien mit Bibliotheken wie vlucas/phpdotenv anstatt sich auf $_ENV zu verlassen.

$GLOBALS

Eine assoziative Reihe aller globalen Variablen im Skript.

 $ a = 10;
echo $ global ['a']; // 10

Es ist selten benötigt, aber nützlich, um den globalen Staat aus Funktionen zu debuggen oder zu manipulieren.


Sicherheitserinnerungen bei der Verwendung von Superglobals

  • Niemals Eingabe vertrauen: Überprüfen und sanieren Sie Daten immer von $_GET , $_POST , $_COOKIE und $_SERVER .
  • Verwenden Sie vorbereitete Aussagen: Wenn Sie Superglobal -Daten in SQL -Abfragen einfügen.
  • Fluchtausgabe: Verwenden Sie htmlspecialchars() um XSS zu verhindern.
  • Filterdatei -Uploads: Überprüfen Sie die Größe, tippen Sie und führen Sie niemals hochgeladene Dateien aus.

Letzte Gedanken

Während $_GET und $_POST unerlässlich sind, entsperren die gesamte Palette von PHP -Superglobals die Kontrolle über das Verhalten, die Sicherheit und die Benutzererfahrung Ihrer Anwendung. Von der Verwaltung von Sitzungen mit $_SESSION bis hin zum Parsen von Uploads über $_FILES dient jedem Superglobal einen bestimmten Zweck.

Zu verstehen, wann und wie man sie benutzt - und genauso wichtig, wie man sie nicht missbraucht - ist ein Kennzeichen eines ausgereiften PHP -Entwicklers.

Behandeln Sie im Grunde alle superglobalen Daten als nicht vertrauenswürdig, und Sie werden auf dem richtigen Weg sind.

Das obige ist der detaillierte Inhalt vonEin tiefes Eintauchen in PHP Superglobals: Beyond `$ _get` und` $ _post`. 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

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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)

Heiße Themen

PHP-Tutorial
1538
276
Übergeben von Variablen durch Bezugnahme im Vergleich zu Wert in Funktionen Übergeben von Variablen durch Bezugnahme im Vergleich zu Wert in Funktionen Jul 26, 2025 am 09:49 AM

Passbyvaluemeansacopyofthedataispassed, SochangesinsidetheFunctionDonotaffektheoriginalvariable, AsseenincwithPrimitivesorpythonWithimmutabletypen.2.PassbyReferencemeansTheFunctionReveverceferencetothoTothoTothoTothoTothoTothoTothoTothoTothooriginal, SomodificationSinicationsinactiona

Modernisierung Ihrer Klassen mit typisierten PHP -Eigenschaften Modernisierung Ihrer Klassen mit typisierten PHP -Eigenschaften Jul 26, 2025 am 09:49 AM

TypedPropertiesinphp7.4 erlaubteDirectTyPeclreferforClasProperties, Verbesserung der Aussage, Idesupport und Kodeklarität; 2.TheyEnforcetypeSafety, Reduzierung, Reduzierung, enableBetterautocompletion und MinimizeconChocks;

Ein tiefes Eintauchen in PHP Superglobals: Beyond `$ _get` und` $ _post` Ein tiefes Eintauchen in PHP Superglobals: Beyond `$ _get` und` $ _post` Jul 26, 2025 am 09:41 AM

PhpSuperGlobalSinclude $ _get, $ _ Post, $ _ Anfrage, $ _ Session, $ _ Cookie, $ _ Server, $ _ Dateien, $ _ ENV und $ GLOBALS, EveryServingDistinctPurpose sbeyondjusthandlingFormData; Theenablestatemanagement, Serverinterction, AndenvironmentAccess.1. $ _ RequestCombines $ _get, $ _ Post,

Entmystifizierende Variablen von PHP (`$$ var`) Entmystifizierende Variablen von PHP (`$$ var`) Jul 25, 2025 am 04:42 AM

Variable Variablen verwenden den Wert einer Variablen als Name einer anderen Variablen über die $$ VAR -Syntax. 2. Wenn $ myvar beispielsweise "Hallo" ist, entspricht $$ myvar $ hello und kann ein Wert zugewiesen werden. 3. In praktischen Anwendungen kann es verwendet werden, um Datendaten dynamisch zu verarbeiten, z. 4.. Es gibt Probleme wie schlechte Lesbarkeit, hohe Sicherheitsrisiken und statische Analysen, insbesondere die Vermeidung der Verwendung von $$ für Benutzereingaben. 5. Es wird empfohlen, Arrays oder Objekte zu verwenden, anstatt dynamische Variablen zu erstellen, z. B. das Speichern von Daten in $ Data -Array, anstatt dynamische Variablen zu erstellen. 6. Verwenden $ {$ var} Curly Brace -Syntax kann die Code -Klarheit verbessern, insbesondere in komplexen Szenarien. Variable Änderung

Der Fall gegen das Schlüsselwort 'Global': Strategien für saubereres Code Der Fall gegen das Schlüsselwort 'Global': Strategien für saubereres Code Jul 25, 2025 am 11:36 AM

Avoidusingtheglobalkeywordunnecessarilyasitleadstocodethatishardertotest,debug,andmaintain;instead,usefunctionparametersandreturnvaluestopassdataexplicitly.2.Replaceglobalvariableswithpurefunctionsthatdependonlyontheirinputsandproduceoutputswithoutsi

PHP -Konstanten vs. Variablen: Eine Anleitung zur Unveränderlichkeit PHP -Konstanten vs. Variablen: Eine Anleitung zur Unveränderlichkeit Jul 25, 2025 pm 05:37 PM

Constantscannotbechangedafterdefinition, während variablescan; 1. variablessTartWith $, aremable, Scoped, andidealfordynamicdata; 2.Constantsusedefine () orconst, Haveno $, ahmbar, weltweit und buchfixierte ValuseklikuikuikuikuikeConifferation;

Der Lebenszyklus einer PHP -Variablen: von der Zuweisung zur Müllsammlung Der Lebenszyklus einer PHP -Variablen: von der Zuweisung zur Müllsammlung Jul 24, 2025 pm 10:49 PM

Aphpvariable'SlifecyclebinswithmemoryAllocationviazvalcreation, die storestorhehevalue, Typ, ReferenceCount, Andreferenzflag.2

Die Nuancen von `isset ()`, `leer ()` und `is_null ()` Für die variable Validierung Die Nuancen von `isset ()`, `leer ()` und `is_null ()` Für die variable Validierung Jul 24, 2025 pm 10:15 PM

ISSET () checksifAvariableisDeclaredandnotnull, returningReforeMptyStrings, 0, '0', False, und TempyArrays; UseIntoconstrirMAVariableExistsandhasbeenset, SuchaverifictingformInputShy $ _post ['E-Mail']

See all articles