Heim >Backend-Entwicklung >PHP-Problem >So filtern Sie unsichere Zeichenfolgen in PHP
So filtern Sie unsichere Zeichenfolgen in PHP: 1. Fügen Sie Sonderzeichen mit der Funktion „mysql_real_escape_string“ einen Backslash hinzu. 3. Filtern Sie Benutzereingaben mit der Funktion „Data“ und mehr.
Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, DELL G3-Computer
Wie filtere ich unsichere Zeichenfolgen in PHP? Zusammenfassung der Verwendung von Zeichensicherheitsfilterfunktionen in PHP
Dieser Artikel stellt hauptsächlich die Zeichensicherheitsfilterfunktionen in PHP vor. Es ist sehr nützlich, um SQL-Injection-Angriffe und XSS-Angriffe zu verhindern. Es wird hier jedem empfohlen.
Im Prozess der WEB-Entwicklung müssen wir häufig Daten einholen, die von Benutzern aus der ganzen Welt eingegeben wurden. Allerdings „können wir niemals den vom Benutzer eingegebenen Daten vertrauen.“ Daher werden in verschiedenen Webentwicklungssprachen Funktionen bereitgestellt, um die Sicherheit der Benutzereingabedaten zu gewährleisten. In PHP gibt es einige sehr nützliche und praktische Funktionen, die Ihnen helfen können, Probleme wie SQL-Injection-Angriffe, XSS-Angriffe usw. zu verhindern.
mysql_real_escape_string()
Diese Funktion hat einst große Hilfe bei der Verhinderung von SQL-Injection-Angriffen in PHP geleistet. Sie fügt „Backslash“ hinzu, um sicherzustellen, dass die Eingaben des Benutzers sicher sind, bevor sie zur Abfrage verwendet werden. Beachten Sie jedoch, dass Sie diese Funktion nutzen, während Sie mit der Datenbank verbunden sind.
Aber jetzt wird die Funktion mysql_real_escape_string() grundsätzlich nicht mehr benötigt. Alle neuen Anwendungsentwicklungen sollten Bibliotheken wie PDO verwenden, um die Datenbank zu betreiben. Mit anderen Worten, wir können vorgefertigte Anweisungen verwenden, um SQL-Injection-Angriffe zu verhindern.
addslashes()
Diese Funktion ist der oben genannten Funktion mysql_real_escape_string() sehr ähnlich. Sie fügt auch Backslashes zu Sonderzeichen hinzu, aber seien Sie vorsichtig, wenn Sie magic_quotes_gpc in der Datei php.ini festlegen „Ein“ ist, verwenden Sie diese Funktion nicht. Wenn magic_quotes_gpc = on ist, wird addslashes() automatisch für alle GET-, POST- und COOKIE-Daten ausgeführt. Verwenden Sie addslashes() nicht für Zeichenfolgen, die von magic_quotes_gpc maskiert wurden, da dies zu doppeltem Escapezeichen führt. Sie können den Wert dieser Variablen über die Funktion get_magic_quotes_gpc() in PHP überprüfen.
3htmlentities()
Diese Funktion ist sehr nützlich zum Filtern von Benutzereingabedaten. Sie kann Zeichen in HTML-Entitäten konvertieren. Wenn der Benutzer beispielsweise das Zeichen „<“ eingibt, wird es von dieser Funktion in die HTML-Entität „<“ umgewandelt (Sie sehen „<“, wenn Sie den Quellcode anzeigen), wodurch XSS- und SQL-Injection verhindert wird Angriffe. Nicht erkannte Zeichensätze werden ignoriert und durch ISO-8859-1 ersetzt. HTMLspecialchars()
Diese Funktion ist der oben genannten sehr ähnlich Wenn Sie diese Bedeutung widerspiegeln möchten, müssen Sie sie in eine HTML-Entität konvertieren. Diese Funktion gibt die konvertierte Zeichenfolge zurück.
strip_tags()
Diese Funktion kann alle HTML-, JavaScript- und PHP-Tags in der Zeichenfolge entfernen. Natürlich können Sie die Filterung einiger bestimmter Tags auch ignorieren, indem Sie den zweiten Parameter der Funktion festlegen. Etikett.
intval()
intval ist eigentlich keine Filterfunktion. Seine Funktion besteht darin, Variablen in Ganzzahltypen umzuwandeln. Dies ist sehr nützlich, wenn wir einen ganzzahligen Parameter benötigen. Sie können diese Funktion verwenden, um Ihren PHP-Code sicherer zu machen, insbesondere wenn Sie ganzzahlige Daten wie ID und Alter analysieren.
Funktionsname | Erklärung | Einleitung |
HTML-Sonderzeichen | Kaufmännisches Und, einfache und doppelte Anführungszeichen, Größer-als- und Kleiner-als-Zeichen in das HTML-Format konvertieren | &Konvertieren in& „Konvertieren in“ ' Konvertieren in ' |
htmlentities() | Alle Zeichen werden in das HTML-Format konvertiert | Zusätzlich zu den oben genannten HTML-Sonderzeichen enthält es auch Doppelbyte-Zeichen, die als Codierungen usw. angezeigt werden. |
fügt Schrägstriche hinzu | Einfache und doppelte Anführungszeichen, Backslashes und NULL plus Backslash-Escapezeichen | Zu den geänderten Zeichen gehören einfache Anführungszeichen ('), doppelte Anführungszeichen ("), Backslash () und Nullzeichen NULL. |
Stripslashes | Entfernen Sie Backslash-Zeichen. Entfernen Sie eines und lassen Sie eines übrig. Entfernen Sie es einfach | quotemeta |
HTML- und PHP-Tags entfernen | Entfernen Sie alle HTML-Tags und PHP-Tags in der Zeichenfolge, einschließlich des Inhalts zwischen den Markierungsblöcken. Beachten Sie, dass bei Fehlern in den Zeichenfolgen-HTML- und PHP-Tags ebenfalls ein Fehler zurückgegeben wird | mysql_real_escape_string |
Escape x00 n r space' "x1a, sehr effektiv für die Verarbeitung von Mehrbyte-Zeichen. mysql_real_escape_string bestimmt den Zeichensatz, mysql_escape_string muss jedoch nicht berücksichtigt werden. | ||
“ |