Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie entgeht man Benutzereingaben bei der Migration von mysql_* zu PDO?

Susan Sarandon
Freigeben: 2024-10-26 12:51:03
Original
494 Leute haben es durchsucht

 How to Escape User Input When Migrating from mysql_* to PDO?

PDO-Äquivalent von mysql_real_escape_string

Frage:

Was ist das Äquivalent von bei der Migration von mysql_* zu PDO? mysql_real_escape_string-Funktion?

Antwort:

Im Gegensatz zu mysql_real_escape_string führt PDO automatisches Escape durch die Verwendung vorbereiteter Anweisungen durch. Vorbereitete Anweisungen verwenden Platzhalter (z. B. ?), anstatt Benutzereingaben direkt in SQL-Abfragen einzufügen, wodurch SQL-Injection-Schwachstellen vermieden werden.

Beispiel:

<code class="php">try {
    $db = new PDO(...);
} catch (PDOException $e) {
    echo "Error connecting to mysql: " . $e->getMessage();
}

if (isset($_POST['color'])) {
    $stmt = $db->prepare("SELECT id, name, color FROM Cars WHERE color = ?");
    $stmt->execute([$_POST['color']]);

    $cars = $stmt->fetchAll(\PDO::FETCH_ASSOC);
    var_dump($cars);
}</code>
Nach dem Login kopieren

In diesem Beispiel , $_POST['color'] wird als Parameter in der vorbereiteten Anweisung übergeben und schützt die Abfrage vor Injektion.

Zusätzliche Hinweise:

  • Immer einschließen charset=utf8 im PDO-Verbindungs-DSN aus Sicherheitsgründen.
  • Aktivieren Sie den PDO-Fehlermodus für Ausnahmen (PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION), um Datenbankfehler ordnungsgemäß zu behandeln.
  • Seien Sie vorsichtig mit veralteten MySQL-Versionen (MySQL < 5.3.6), bei denen möglicherweise zusätzliche Vorsichtsmaßnahmen erforderlich sind.
  • Weitere Informationen zur PDO- und SQL-Injection-Prävention finden Sie in den folgenden Ressourcen.

Weiterführende Literatur:

  • PDO-Tutorial für MySQL-Entwickler

Das obige ist der detaillierte Inhalt vonWie entgeht man Benutzereingaben bei der Migration von mysql_* zu PDO?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!