Heim  >  Artikel  >  Backend-Entwicklung  >  So verhindern Sie die SQL-Injection in PHP

So verhindern Sie die SQL-Injection in PHP

(*-*)浩
(*-*)浩Original
2019-09-19 11:06:374940Durchsuche

Sie müssen SQL-Injection verhindern, wenn Sie die Datenbank abfragen

So verhindern Sie die SQL-Injection in PHP

Die Implementierungsmethode:

PHP wird mitgeliefert seine eigene Methode SQL-Anweisungen können mit Escapezeichen versehen werden, und Backslashes werden vor bestimmten Zeichen hinzugefügt, wenn dies in Datenbankabfrageanweisungen erforderlich ist. Diese Zeichen sind einfache Anführungszeichen ('), doppelte Anführungszeichen ("), Backslash () und NUL (NULL-Zeichen). (Empfohlenes Lernen: PHP-Programmierung vom Eintrag bis zum Master)

string addslashes ( string $str )//该函数返回一个字符串

Beispiel

<?php
$str = "Is your name O&#39;reilly?";

// 输出: Is your name O\&#39;reilly?
echo addslashes($str);
?>

ThinkPHP bietet automatisch Sicherheitsschutz für Daten vom Typ String, führt ThinkPHP eine Escape_String-Verarbeitung durch (real_escape_string, mysql_escape_string)

Um SQL-Injection-Probleme wirksam zu verhindern, offizielle Empfehlungen:

Versuchen Sie, Arrays für Abfragebedingungen zu verwenden, was eine sicherere Methode ist.

Wenn Sie Zeichenfolgenabfragebedingungen verwenden müssen, verwenden Sie den Vorverarbeitungsmechanismus automatische Vervollständigungsmechanismen für anwendungsspezifische Filterung;

Wenn die Umgebung es zulässt, versuchen Sie, PDO zu verwenden und eine Parameterbindung

Abfrage zu verwenden Diese Methode ähnelt dem Einfügen eines Platzhalters in die Abfrageanweisung und der anschließenden Übergabe der Parameter in Form eines Arrays

Zum Beispiel:

$Model->where("id=%d and username=&#39;%s&#39; and xx=&#39;%f&#39;",array($id,$username,$xx))->select();

$Model->where("id=%d and username=&#39;%s&#39; and xx=&#39;%f&#39;",$id,$username,$xx)->select();

Das obige ist der detaillierte Inhalt vonSo verhindern Sie die SQL-Injection 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