Heim  >  Artikel  >  Backend-Entwicklung  >  Eine kurze Beschreibung der Zeichensicherheitsfilterfunktion in PHP

Eine kurze Beschreibung der Zeichensicherheitsfilterfunktion in PHP

墨辰丷
墨辰丷Original
2018-06-13 09:50:581690Durchsuche

In diesem Artikel wird hauptsächlich die Zeichensicherheitsfilterfunktion in PHP vorgestellt, die sehr nützlich ist, um SQL-Injection-Angriffe und XSS-Angriffe zu verhindern. Es wird hier jedem empfohlen.

Während des WEB-Entwicklungsprozesses müssen wir häufig Daten einholen, die von Benutzern aus der ganzen Welt eingegeben werden. 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.

1. mysql_real_escape_string()

Diese Funktion war einst eine große Hilfe bei der Verhinderung von SQL-Injection-Angriffen in PHP. Sie verwendet Sonderzeichen wie einfache Anführungszeichen und doppelte Anführungszeichen „Backslash“, um sicherzustellen, dass die Eingabe des Benutzers sicher ist, bevor sie zur Abfrage verwendet wird. 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() im Grunde 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.

2. addslashes()

Diese Funktion ist der oben genannten mysql_real_escape_string() sehr ähnlich. Sie fügt auch Backslashes zu Sonderzeichen hinzu, aber seien Sie vorsichtig, wenn Sie sie nicht verwenden Diese Funktion funktioniert, wenn der Wert von magic_quotes_gpc in der Datei php.ini „on“ ist. 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.

3. htmlentities()

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.

4. Diese Funktion ist der oben genannten Funktion sehr ähnlich Zeichen in haben spezielle Bedeutungen. Wenn Sie solche Bedeutungen widerspiegeln möchten, müssen sie in HTML-Entitäten umgewandelt werden. Diese Funktion gibt die konvertierte Zeichenfolge zurück.

5. strip_tags()

Diese Funktion kann alle HTML-, JavaScript- und PHP-Tags im String entfernen. Natürlich können Sie auch die zweite Funktion festlegen Funktion. Parameter, Filterung einiger spezifischer Tags ignorieren.

6. 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.

Dies ist eine Zusammenfassung, wie PHP mit Sonderzeichen in Formularübermittlungen umgeht. Dabei handelt es sich hauptsächlich um die gemeinsame Verwendung mehrerer Funktionen wie htmlspecialchars/addslashes/stripslashes/strip_tags/mysql_real_escape_string.

1. Mehrere PHP-Funktionen im Zusammenhang mit der Verarbeitung von Sonderzeichen

>Konvertieren>

Dies sind die in PHP integrierten String-Filterfunktionen, die sehr einfach und praktisch sind. Ich hoffe, meine Freunde können sie gut nutzen.

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

So fügen Sie Untertitel zu Videos mit PHP und ffmpeg hinzu

PHP-Klasse für reguläre Ausdrücke zur Implementierung der UBB-Codefilterung

So erhalten Sie die Breite und Höhe des Textanzeigegitters in PHP

Das obige ist der detaillierte Inhalt vonEine kurze Beschreibung der Zeichensicherheitsfilterfunktion in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
FunktionsnameErklärung Einführung
htmlspecialcharsKonvertieren Sie und, einfache und doppelte Anführungszeichen, Größer-als- und Kleiner-als-Zeichen in das HTML-Format &Konvertieren&

„Konvertieren“
' 'Konvertieren in'

函数名释义介绍
htmlspecialchars将与、单双引号、大于和小于号化成HTML格式&转成&
"转成"
' 转成'
<转成<
>转成>

htmlentities() 所有字符都转成HTML格式 除上面htmlspecialchars字符外,还包括双字节字符显示成编码等。
addslashes 单双引号、反斜线及NULL加上反斜线转义 被改的字符包括单引号(')、双引号(")、反斜线backslash () 以及空字符NULL。
stripslashes 去掉反斜线字符 去掉字符串中的反斜线字符。若是连续二个反斜线,则去掉一个,留下一个。若只有一个反斜线,就直接去掉。
quotemeta 加入引用符号 将字符串中含有. \ + * ? [ ^ ] ( $ ) 等字符的前面加入反斜线"" 符号。
nl2br() 将换行字符转成
strip_tags 去掉HTML及PHP标记 去掉字符串中任何HTML标记和PHP标记,包括标记封堵之间的内容。注意如果字符串HTML及PHP标签存在错误,也会返回错误。
mysql_real_escape_string 转义SQL字符串中的特殊字符 转义x00 n r 空格 ' " x1a,针对多字节字符处理很有效。mysql_real_escape_string会判断字符集,mysql_escape_string则不用考虑。
htmlentities() Alle Zeichen werden in das HTML-Format konvertiert Mit Ausnahme der oben genannten htmlspecialchars-Zeichen Enthält Doppelbyte-Zeichen, die als Codierungen usw. angezeigt werden.
fügt Schrägstriche hinzu Einfache und doppelte Anführungszeichen, Backslash und NULL plus Backslash-Escape Zu den geänderten Zeichen gehören einfache Anführungszeichen ('), doppelte Anführungszeichen ("), Backslash Backslash () und das Nullzeichen NULL.
stripslashes Backslash-Zeichen entfernen Entfernen Sie zwei aufeinanderfolgende Backslash-Zeichen in der Zeichenfolge. Wenn nur ein Schrägstrich vorhanden ist, entfernen Sie einen und lassen Sie einen übrig
quotemeta Anführungszeichen hinzufügen Enthalten Sie Zeichen wie \ + * ? [ ^ ] ( $ ) in der Zeichenfolge. Fügen Sie vor
nl2br() Konvertieren Sie das Zeilenumbruchzeichen in
strip_tags Entfernen Sie HTML und PHP Tags Entfernen Sie alle HTML-Tags und PHP-Tags in der Zeichenfolge, einschließlich des Inhalts zwischen Tag-Blöcken. Beachten Sie, dass bei Fehlern in den HTML- und PHP-Tags der Zeichenfolge auch Fehler zurückgegeben werden
mysql_real_escape_string Escape-Sonderzeichen in SQL-Strings Escape x00 n r space ' " x1a, was für die Verarbeitung von Mehrbyte-Zeichen sehr effektiv ist. mysql_real_escape_string bestimmt den Zeichensatz, mysql_escape_string muss jedoch nicht berücksichtigt werden.