Heim >Datenbank >MySQL-Tutorial >Benötigen vorbereitete Anweisungen „mysql_real_escape_string()' aus Sicherheitsgründen?

Benötigen vorbereitete Anweisungen „mysql_real_escape_string()' aus Sicherheitsgründen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-01 23:50:29300Durchsuche

Do Prepared Statements Need `mysql_real_escape_string()` for Security?

Verwendung von mysql_real_escape_string mit vorbereiteten Anweisungen

Frage:

Ist es notwendig, die Funktion mysql_real_escape_string() zu verwenden, wenn vorbereitete Anweisungen verwendet werden? Anweisungen für Datenbankabfragen?

Kontext:

Der bereitgestellte Code demonstriert eine vorbereitete Anweisungsabfrage mithilfe der MySQLi-Bibliothek. Derzeit wird jedoch die Funktion mysql_real_escape_string() verwendet, um die Benutzereingaben zu bereinigen.

<code class="php">$consulta = $_REQUEST["term"]."%";

($sql = $db->prepare('select location from location_job where location like ?'));

$sql->bind_param('s', $consulta);
$sql->execute();</code>

Antwort:

Nein, vorbereitete Anweisungen bieten inhärenten Schutz gegen SQL-Injection und Datenmanipulation bei ordnungsgemäßer Verwendung. Sie bereinigen Eingaben automatisch und machen mysql_real_escape_string() überflüssig.

Verbesserung:

Während die Abfrage vorbereitete Anweisungen korrekt verwendet, kann eine geringfügige Änderung ihre Effizienz verbessern. Anstatt die Methode bind_param() zu verwenden, kann die Methodeexecute() verwendet werden, um Parameter direkt zu übergeben.

<code class="php">$sql->execute([$consulta]);</code>

Zusätzlicher Hinweis:

Obwohl vorbereitete Anweisungen schützen Gegen SQL-Injection gewährleisten sie nicht die Sicherheit der Daten bei der Ausgabe auf der Seite. Um potenzielle Cross-Site-Scripting-Angriffe (XSS) zu verhindern, wird empfohlen, htmlspecialchars() zu verwenden, um alle Daten vor der Ausgabe an den Browser in HTML zu kodieren.

Das obige ist der detaillierte Inhalt vonBenötigen vorbereitete Anweisungen „mysql_real_escape_string()' aus Sicherheitsgründen?. 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