Der Unterschied zwischen ${param} und #{param} in MySQL

Der Unterschied zwischen ${param} und #{param} in MySQL

Der von ${param} übergebene Parameter wird als Teil der SQL-Anweisung behandelt, z. B. die Übergabe des Tabellennamens und des Feldnamens

Beispiel: (der übergebene Wert ist id)

Sortiert nach ${param}

Das analysierte SQL lautet:

Sortieren nach ID

#{parm} Die übergebenen Daten werden als Zeichenfolge behandelt und den automatisch übergebenen Daten werden doppelte Anführungszeichen hinzugefügt

Beispiel: (der übergebene Wert ist id)

Wählen Sie * aus der Tabelle, wobei Name = #{param}

Das analysierte SQL lautet:

Wählen Sie * aus der Tabelle, in der Name = "id" ist.

Verwenden Sie aus Sicherheitsgründen nach Möglichkeit # zur Parameterübergabe. Dadurch können SQL-Injection-Angriffe wirksam verhindert werden.

Einführung in SQL-Injection

Ich habe mir direkt das Beispiel von Baidu angesehen und es war auf den ersten Blick klar.

Der SQL-Abfragecode zur Login-Verifizierung einer bestimmten Website lautet:

strSQL = "SELECT * FROM users WHERE (name = '" + userName + "') und (pw = '"+ passWord + "');"

Böswilliger Zugriff
Wenn userName = "1' OR '1'='1";與passWord = "1' OR '1'='1"; wird die ursprüngliche SQL-Zeichenfolge wie folgt ausgefüllt:
strSQL = "SELECT * FROM users WHERE (name = '1' OR '1'='1') and (pw = '1' OR '1'='1'); "
Das heißt, der tatsächlich ausgeführte SQL-Befehl sieht folgendermaßen aus strSQL = "SELECT * FROM users; "

Dadurch wird die Überprüfung bei der im Hintergrund laufenden Kontoauthentifizierung geschickt umgangen und Benutzer können sich ohne Konto oder Kennwort auf der Website anmelden. Aus diesem Grund sind SQL-Injection-Angriffe gemeinhin als Lückentext-Spiel der Hacker bekannt.

Dies ist das Ende dieses Artikels über den Unterschied zwischen ${param} und #{param} in MySQL. Weitere Informationen zum Unterschied zwischen ${param} und #{param} in MySQL finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Der Unterschied zwischen ## und $$ in dynamischem SQL unter Mybatis
  • Eine kurze Erläuterung des Unterschieds zwischen # und $ in Mybatis und wie SQL-Injection verhindert werden kann

<<:  Beheben Sie das Problem des schwarzen Bildschirms beim Starten der virtuellen VMware-Maschine

>>:  Ein Artikel, der Ihnen hilft, die Positionsberechnung in js gründlich zu verstehen

Artikel empfehlen

Implementierungsbeispiel zum Schließen der Browserabmeldung in Vue

Inhaltsverzeichnis 1. beforeunload-Ereignis 2. Er...

SMS-Bestätigungscode-Anmeldefunktion basierend auf Antd Pro (Prozessanalyse)

Inhaltsverzeichnis Zusammenfassung Gesamtprozess ...

Beispiel für die Implementierung des Skelettbildschirms des WeChat-Applets

Inhaltsverzeichnis Was ist ein Skelettbildschirm?...

React+axios implementiert die Suchbenutzerfunktion von GitHub (Beispielcode)

laden Anforderung erfolgreich Anforderung fehlges...

JavaScript zum Anzeigen versteckten Formulartexts

Dieser Artikel gibt Ihnen den spezifischen JavaSc...

So steuern Sie die Startreihenfolge von Docker Compose-Diensten

Zusammenfassung Docker-Compose kann problemlos me...

Design-Story: Der Wachmann, der sich Nummernschilder nicht merken kann

<br />Um die Fahrzeuge zu regeln, die in die...

So zeichnen Sie eine Schaltfläche in XAML als Kreis neu

Beim Verwenden des XAML-Layouts müssen manchmal ei...

Beispieltest MySQL-Enumerationstyp

Bei der Entwicklung eines Projekts stößt man häuf...

Webinterview: Benutzerdefinierte Vue-Komponenten und Aufrufmethoden

Import: Aufgrund der Projektanforderungen werden ...

Implementierungsbeispiel eines Videoplayers basierend auf Vue

Wenn der vorhandene Videoplayer die Anforderungen...

Ausführliche Erklärung der Closure in JavaScript

Einführung Closure ist eine sehr leistungsstarke ...

Implementierung der Docker Compose-Mehrcontainerbereitstellung

Inhaltsverzeichnis 1. WordPress-Bereitstellung 1....

Implementierung eines CSS-Textschatten-Effekts zur allmählichen Unschärfe

Textschatten Fügen Sie dem Text einen Schatten hi...