Heim >Backend-Entwicklung >PHP-Problem >Was sind die PHP-MySQL-Escape-Funktionen?

Was sind die PHP-MySQL-Escape-Funktionen?

藏色散人
藏色散人Original
2021-09-16 09:53:022861Durchsuche

php MySQL-Escape-Funktionen umfassen: 1. Funktion „addslashes“; 3. Funktion „htmlentities“; 4. Funktion „mysql_real_escape_string“;

Was sind die PHP-MySQL-Escape-Funktionen?

Die Betriebsumgebung dieses Artikels: Windows 7-System, PHP-Version 7.1, Dell G3-Computer

php Was sind die MySQL-Escape-Funktionen, wenn Sie das Tool verwenden und eine POST-SQL-Anweisung zum Abfragen von Daten senden? Im Backend wird ein Syntaxfehler gemeldet, wenn das Backend die SQL-Anweisung mit 0c55574367f335e00d3ed11372063196 empfängt.

Aber es ist kein Problem, wenn ich die eingereichte Abrechnung ausdrucke. Denken Sie darüber nach, es muss ein Codierungs- oder Escape-Problem sein.

$sqlQuery = html_entity_decode($_POST["content"]);
$sqlQuery = stripslashes($sqlQuery);[object Object]
Im Folgenden werden hauptsächlich die in PHP häufig verwendeten Escape-Funktionen und Sicherheitsfunktionen vorgestellt, z. B. SQL-Injection.

1 die Sonderzeichen in, einschließlich ('), ("), (), (NUL) vier Zeichen. Diese Funktion wird verwendet, wenn das DBMS keine eigene Escape-Funktion hat, aber wenn das DBMS über eine eigene Escape-Funktion verfügt, dann Es wird empfohlen, die Originalfunktion zu verwenden. MySQL verfügt beispielsweise über die Funktion mysql_real_escape_string, um SQL zu maskieren. Beachten Sie, dass magic_quotes_gpc standardmäßig aktiviert ist und hauptsächlich Addslashes-Operationen für $GET, $POST und $COOKIE ausführt. Dies ist also nicht der Fall. Sie müssen addslashes wiederholt für diese Variablen aufrufen, da sonst ein doppeltes Escapezeichen auftritt. Allerdings ist magic_quotes_gpc in PHP5.3 veraltet und wurde seit PHP5.4 entfernt Machen Sie sich über dieses Problem keine Sorgen. Es ist die Unescape-Funktion von addslashes. htmlspecialchars htmlspecialchars maskiert mehrere Sonderzeichen in HTML (Format: &xxxx;), einschließlich (&), ('), (. "), (). Zeichen.

& (AND) => &
” (双引号) => " (当ENT_NOQUOTES没有设置的时候)
‘ (单引号) => ' (当ENT_QUOTES设置)
< (小于号) => <
> (大于号) => >

htmlspecialchars können zum Filtern von $GET-, $POST- und $COOKIE-Daten verwendet werden, um XSS zu verhindern. Beachten Sie, dass die Funktion „htmlspecialchars“ nur HTML-Zeichen maskiert, bei denen ein Sicherheitsrisiko besteht. Wenn Sie alle Zeichen maskieren möchten, die in HTML maskiert werden können, verwenden Sie bitte htmlentities. htmlspecialchars_decode ist die Dekodierungsfunktion von htmlspecialchars.

3. htmlentities

htmlentities maskiert den escapbaren Inhalt in HTML in HTML-Entitäten. html_entity_decode ist die Dekodierungsfunktion von htmlentities.

4. mysql_real_escape_string

mysql_real_escape_string ruft die MySQL-Bibliotheksfunktion mysql_real_escape_string auf, um (x00), (n), (r), (), ('), (x1a) zu maskieren, d. h. vor () einen Backslash hinzuzufügen. um SQL-Injection zu verhindern. Beachten Sie, dass Sie beim Lesen der Datenbankdaten keine Stripslashes aufrufen müssen, um die Escape-Funktion aufzuheben, da diese Backslashes hinzugefügt werden, wenn die Datenbank SQL ausführt, und entfernt werden, wenn die Daten in die Datenbank geschrieben werden. Der Inhalt wird in die Datenbank geschrieben die Originaldaten, und es werden keine Backslashes davor stehen.

5. strip_tagsstrip_tags filtert NUL-, HTML- und PHP-Tags heraus. Die Funktion

6.stripslashes()

entfernt die durch die Funktion addslashes() hinzugefügten Backslashes.

7. Fazit Die integrierte Sicherheitsfunktion von PHP kann XSS nicht vollständig vermeiden. Es wird empfohlen, HTML Purifier zu verwenden. Empfohlenes Lernen: „

PHP-Video-Tutorial.“

Das obige ist der detaillierte Inhalt vonWas sind die PHP-MySQL-Escape-Funktionen?. 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