Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich sichere MySQL-Abfragen mit den mysql_*-Funktionen schreiben?

Wie kann ich sichere MySQL-Abfragen mit den mysql_*-Funktionen schreiben?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-17 09:50:24364Durchsuche

How Can I Write Secure MySQL Queries Using the mysql_* Functions?

Referenz: Sicheren MySQL-Code ohne PDO schreiben

Einführung

MySQL-Abfragen sind oft problematisch mit Sicherheitslücken und Fehlern aufgrund unsachgemäßer Handhabung. Um dieses Problem anzugehen, ist es wichtig, die Best Practices zum Schreiben von sicherem und zuverlässigem Code zu verstehen.

Sicherheitsbedenken bei MySQL_*-Funktionen

Bei Verwendung der mysql_*-Funktionsfamilie , treten häufige Sicherheitsprobleme auf:

  • SQL-Injection: Angreifer können manipulieren Abfragen durch Einfügen schädlicher SQL-Anweisungen in Benutzereingaben.
  • Cross-Site Scripting (XSS): Schädliches JavaScript kann durch Einfügen in ausgegebene Werte ausgeführt werden.

Beispielverwendung

Das folgende PHP-Codebeispiel zeigt, wie eine sichere und durchgeführt wird Sichere UPDATE-Abfrage mit mysql_*-Funktionen:

<?php

# Connect and disable mysql error output
$connection = @mysql_connect($config['host'], $config['user'], $config['pass']);

# Select database
mysql_select_db($config['db'], $connection);

# Set character set
mysql_set_charset('utf8', $connection);

# Escape user input
$id = mysql_real_escape_string($_POST['id']);
$name = mysql_real_escape_string($_POST['name']);

# Execute query
$result = mysql_query('UPDATE tablename SET name = "' . $name . '" WHERE id = "' . $id . '"', $connection);

# Handle result
if ($result) {
    echo htmlentities($name, ENT_COMPAT, 'utf-8') . ' updated.';
} else {
    trigger_error('Unable to update db: ' . mysql_error(), E_USER_ERROR);
}

?>

Hauptfunktionen

  • Entgeht Benutzereingaben, um SQL-Injection zu verhindern.
  • Kodiert ausgegeben Werte zur Minderung von XSS-Risiken.
  • Legt die Zeichenkodierung für die Verarbeitung von Unicode fest Daten.
  • Verwendet Fehlerbehandlung, um den Benutzer über alle Probleme im Produktionsmodus zu informieren.
  • Hält den Code einfach und lesbar, damit er leicht verständlich ist.

Fazit

Indem Sie die oben beschriebenen Best Practices befolgen, können Sie sichere und effiziente MySQL-Abfragen mit schreiben mysql_*-Funktionen. Denken Sie daran, dass es von entscheidender Bedeutung ist, Ihre Anwendungen vor Sicherheitslücken zu schützen und die Datenintegrität sicherzustellen.

Das obige ist der detaillierte Inhalt vonWie kann ich sichere MySQL-Abfragen mit den mysql_*-Funktionen schreiben?. 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