Schlüsselpunkte
filter_var()
und filter_input()
angewendet werden, um Ihre PHP -Anwendungen sicherer und zuverlässiger zu gestalten. In diesem Artikel wird untersucht, warum etwas, das in einem Filterantrag enthalten ist, so wichtig ist. Insbesondere werden wir untersuchen, wie externe Daten in PHP validieren und reinigen können.
Vertrauen Sie den externen Eingaben in der App absolut nicht. Dies ist eine der wichtigsten Lektionen, die jeder, der eine Webanwendung entwickelt, lernen muss.
externe Eingabe kann alles sein - Eingabedaten aus $_GET
und $_POST
Formularen, bestimmte Elemente in der HTTP -Anforderungsorganisation und sogar bestimmte Werte in der $_SERVER
hyperglobalen Variablen. Cookies, Sitzungswerte und hochgeladene und heruntergeladene Dokumentdateien werden ebenfalls als externe Eingaben betrachtet.
Jedes Mal, wenn wir externe Daten in unseren Code verarbeiten, ausgeben, einschließen oder verbinden, ist es möglich, dass ein Angreifer den Code in unsere Anwendung injiziert (sogenannter Injektionsangriff). Daher müssen wir sicherstellen, dass jedes Stück externe Daten ordnungsgemäß gefiltert wird, damit sie sicher in die Anwendung integriert werden können.
In Bezug auf die Filterung gibt es zwei Haupttypen: Überprüfung und Reinigung.
Verifizierung
Stellen Sie sicher, dass externe Eingaben unsere Erwartungen entsprechen. Zum Beispiel könnten wir eine E -Mail -Adresse erwarten, daher erwarten wir ein ähnliches Format wie name@domain.com
. Dazu können wir den FILTER_VALIDATE_EMAIL
-Filter verwenden. Oder, wenn wir einen Booleschen erwarten, können wir PHPs FILTER_VALIDATE_BOOL
Filter verwenden.
Die nützlichsten Filter umfassen FILTER_VALIDATE_BOOL
, FILTER_VALIDATE_INT
und FILTER_VALIDATE_FLOAT
für die Filterung von Grundtypen sowie FILTER_VALIDATE_EMAIL
bzw. FILTER_VALIDATE_DOMAIN
zum Filtern von E -Mails bzw. Domainnamen.
Ein weiterer sehr wichtiger Filter ist FILTER_VALIDATE_REGEXP
, der es uns ermöglicht, gemäß den regulären Ausdrücken zu filtern. Mit diesem Filter können wir einen benutzerdefinierten Filter erstellen, indem wir die von uns filteren regulären Ausdrücke ändern.
Alle zur Überprüfung in PHP verfügbaren Filter finden Sie hier.
Reinigung
Reinigung ist das Entfernen illegaler oder unsicherer Zeichen aus externen Eingaben.
Das beste Beispiel ist, dass wir die Datenbankeingabe aufräumen, bevor wir sie in die ursprüngliche SQL -Abfrage einfügen.
Ebenso enthalten einige der nützlichsten Reinigungsfilter Filter für die Reinigung von Grundtypen wie FILTER_SANITIZE_STRING
, FILTER_SANITIZE_CHARS
und FILTER_SANITIZE_INT
sowie FILTER_SANITIZE_URL
und FILTER_SANITIZE_EMAIL
zum Reinigen von URLs und Elektronik -E -Mails.
Alle PHP -Reinigungsfilter finden Sie hier.
filter_var()
und filter_input()
Jetzt, da wir wissen, dass PHP eine Vielzahl von Filtern bietet, müssen wir wissen, wie man sie benutzt.
Die -Filteranwendung erfolgt über die Funktionen filter_var()
und filter_input()
.
filter_var()
wendet den angegebenen Filter auf die Variable an. Es wird den Wert zum Filtern, den zu beantragten Filter und eine optionale Reihe von Optionen erhält. Wenn wir beispielsweise versuchen, die E -Mail -Adresse zu überprüfen, können wir den folgenden Code verwenden:
<?php $email = 'your.email@sitepoint.com'; if (filter_var($email, FILTER_VALIDATE_EMAIL)) { echo("This email is valid"); }
Wenn das Ziel darin besteht, die Zeichenfolge zu reinigen, können wir den folgenden Code verwenden:
<?php $string = "<h1>Hello World</h1>"; $sanitized_string = filter_var($string, FILTER_SANITIZE_STRING); echo $sanitized_string;
filter_input()
Die Funktion nimmt externe Eingabe aus dem Formulareingang und filtert sie.
Es funktioniert ähnlich wie die Funktion filter_var()
, erfordert jedoch den Eingabetyp (wir können von GET, Post, Cookie, Server oder Env auswählen), die zum Filtern von Variablen und den Filter. Es wird auch selektiv eine Reihe von Optionen erhalten.
In ähnlicher Weise können wir den folgenden Code verwenden:
<?php if (filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) { echo "The email is being sent and is valid."; }
Schlussfolgerung
Dies sind die Grundlagen der Datenfilterung in PHP. Andere Techniken können verwendet werden, um externe Daten zu filtern, z. B. bei der Anwendung regelmäßiger Ausdrücke, aber die in diesem Artikel sehen, sind für die meisten Anwendungsfälle ausreichend.
Stellen Sie sicher, dass Sie den Unterschied zwischen Validierung und Reinigung und der Verwendung der Filterfunktion verstehen. Mit diesem Wissen ist Ihre PHP -Anwendung zuverlässiger und sicherer!
PHP -Datenfilterung ist entscheidend, um die Sicherheit und Integrität Ihrer Webanwendungen sicherzustellen. Es hilft, die Benutzereingabe zu überprüfen und zu reinigen, eine gemeinsame Quelle für Sicherheitsanfälligkeiten wie SQL-Injektion und Cross-Site-Skripten (XSS). Durch Filtern von Daten können Sie verhindern, dass bösartige oder falsche Daten Ihre Anwendung oder Datenbank beschädigen. Es hilft auch bei der Aufrechterhaltung der Datenkonsistenz und Zuverlässigkeit, was für den reibungslosen Betrieb der Anwendung von entscheidender Bedeutung ist.
PHP -Datenfilterungsarbeiten durch Anwenden spezifischer Filterfunktionen auf die Daten. Diese Funktionen können die Daten überprüfen (prüfen Sie, ob die Daten eine bestimmte Bedingung erfüllen) oder die Daten beseitigen (Entfernen illegaler oder unsicherer Zeichen aus den Daten). PHP bietet eine Vielzahl von integrierten Filterfunktionen, die Sie verwenden können, z. B. filter_var()
, filter_input()
und filter_has_var()
.
Einige häufige PHP -Filterfunktionen umfassen filter_var()
, filter_input()
, filter_has_var()
und filter_id()
. Die Funktion filter_var()
verwendet den angegebenen Filter, um Variablen zu filtern. filter_input()
Funktionen nehmen spezifische externe Variablen mit Namen und filtern sie optional filtern. Die Funktion filter_has_var()
prüft, ob die Variable des angegebenen Eingangstyps vorhanden ist, während die Funktion filter_id()
die Filter -ID zum benannten Filter zurückgibt.
filter_var()
-Funktion in PHP? Die filter_var()
-Funktion in PHP wird verwendet, um Variablen mit dem angegebenen Filter zu filtern. Es akzeptiert zwei Parameter: die Variable, die gefiltert werden soll, und die angewendete Filtertyp. Um zu überprüfen, ob eine Variable eine E -Mail ist, können Sie den FILTER_VALIDATE_EMAIL
-Filter mit der Funktion filter_var()
wie folgt verwenden:
<?php $email = 'your.email@sitepoint.com'; if (filter_var($email, FILTER_VALIDATE_EMAIL)) { echo("This email is valid"); }
Daten in PHP überprüfen, beinhaltet die Überprüfung, ob die Daten bestimmte Bedingungen erfüllen. Sie können beispielsweise Ihre E -Mail -Adresse überprüfen, um sicherzustellen, dass sie korrekt formatiert ist. Andererseits umfasst die Reinigung von Daten das Löschen oder Ersetzen von illegalen oder unsicheren Zeichen aus den Daten. Dies soll häufig Sicherheitslücken wie SQL-Injektion und Cross-Site-Skripten (XSS) verhindern.
Sie können den Funktions- und Reinigungsfilter filter_input()
verwenden, um die Benutzereingabe in PHP zu reinigen. Um den Benutzernamen zu reinigen, können Sie den FILTER_SANITIZE_STRING
-Filter wie folgt verwenden:
<?php $string = "<h1>Hello World</h1>"; $sanitized_string = filter_var($string, FILTER_SANITIZE_STRING); echo $sanitized_string;
PHP -Filterflag wird verwendet, um dem Filterprozess zusätzliche Einschränkungen oder Modifikatoren hinzuzufügen. Einige häufige Anzeichen umfassen FILTER_FLAG_STRIP_LOW
, FILTER_FLAG_STRIP_HIGH
, FILTER_FLAG_ENCODE_LOW
und FILTER_FLAG_ENCODE_HIGH
. Zum Beispiel entfernt das FILTER_FLAG_STRIP_LOW
-Flag Zeichen mit ASCII -Werten unter 32 aus der Eingabe.
Sie können Filterflags in PHP verwenden, indem Sie sie als dritte Argumente an die Funktionen filter_var()
oder filter_input()
übergeben. Um beispielsweise IP -Adressen zu filtern und nur IPv4 -Adressen zuzulassen, können Sie das Flag FILTER_FLAG_IPV4
wie folgt verwenden:
<?php if (filter_input(INPUT_GET, "email", FILTER_VALIDATE_EMAIL)) { echo "The email is being sent and is valid."; }
filter_has_var()
-Funktion in PHP? Die filter_has_var()
-Funktion in PHP wird verwendet, um zu überprüfen, ob eine Variable des angegebenen Eingangstyps vorhanden ist. Es akzeptiert zwei Parameter: Eingabetyp und variabler Name. Gibt true zurück, wenn die Variable existiert;
filter_has_var()
-Funktion in PHP? Sie können die Funktion filter_has_var()
in PHP verwenden, um zu überprüfen, ob eine bestimmte Eingabevariable vorhanden ist. Um beispielsweise zu überprüfen, ob eine Postvariable mit dem Namen "Benutzername" besteht, können Sie dies tun:
<?php $email = 'your.email@sitepoint.com'; if (filter_var($email, FILTER_VALIDATE_EMAIL)) { echo("This email is valid"); }
Das obige ist der detaillierte Inhalt vonSchneller Tipp: So filtern Sie Daten mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!