Heim  >  Artikel  >  Datenbank  >  Ist mysql_real_escape_string() bei vorbereiteten Anweisungen noch notwendig?

Ist mysql_real_escape_string() bei vorbereiteten Anweisungen noch notwendig?

Linda Hamilton
Linda HamiltonOriginal
2024-11-02 07:50:02793Durchsuche

Is mysql_real_escape_string() Still Necessary with Prepared Statements?

Zeichenfolgen in vorbereiteten Anweisungen maskieren: Die Notwendigkeit von mysql_real_escape_string()

Bei der Arbeit mit SQL-Abfragen ist es wichtig, sich vor SQL-Injection-Angriffen zu schützen, indem vom Benutzer bereitgestellte Eingaben maskiert werden . Es stellt sich die Frage: Ist die Funktion mysql_real_escape_string() noch erforderlich, wenn vorbereitete Anweisungen verwendet werden?

In einer bestimmten Abfrage:

<code class="php">$consulta = $_REQUEST["term"]."%";
$sql = $db->prepare('select location from location_job where location like ?');
$sql->bind_param('s', $consulta);
$sql->execute();
$sql->bind_result($location);

$data = array();

while ($sql->fetch()) {
    $data[] = array('label' => $location);
}</code>

Vorbereitete Anweisungen erhöhen die SQL-Sicherheit, indem sie Daten von der Abfrage trennen und verhindern böswillige Injektionen. Dies macht mysql_real_escape_string() jedoch nicht überflüssig.

Um sicherzustellen, dass die Dateneingabe die Abfrage nicht verändert, kann eine einfache Änderung in Ihrem Code sie weiter sichern:

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

Dies Change übergibt Parameter direkt über die Ausführungsmethode unter Verwendung des „?“ Platzhalter. Denken Sie jedoch daran, Benutzereingaben vor der Ausgabe über htmlspecialchars() zu verarbeiten, um sich gegen HTML-Injection-Angriffe zu schützen.

Durch die Einhaltung der ordnungsgemäßen Verwendung vorbereiteter Anweisungen machen Sie mysql_real_escape_string() überflüssig und erhöhen die Sicherheit Ihrer SQL-Abfragen .

Das obige ist der detaillierte Inhalt vonIst mysql_real_escape_string() bei vorbereiteten Anweisungen noch notwendig?. 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