Prepared Statements: Unterschied zwischen den Versionen

Aus IT-Forensik Wiki
(Die Seite wurde neu angelegt: „Ein Prepared Statement ist eine sogenannte vorbereitete Anweisung für ein Datenbanksystem. Im Gegensatz zu gewöhnlichen Statements enthält es noch keine Par…“)
 
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Ein Prepared Statement ist eine sogenannte vorbereitete Anweisung für ein Datenbanksystem. Im Gegensatz zu gewöhnlichen Statements enthält es noch keine Parameterwerte. Stattdessen werden dem Datenbanksystem Platzhalter übergeben.
Ein Prepared Statement ist eine sogenannte vorbereitete Anweisung für ein Datenbanksystem. Im Gegensatz zu gewöhnlichen Statements enthält es noch keine Parameterwerte. Stattdessen werden dem Datenbanksystem Platzhalter übergeben.


Mittels Prepared Statements können SQL-Injections effektiv verhindert werden, da das Datenbanksystem die Gültigkeit von Parametern prüft, bevor diese verarbeitet werden.
Verwendet eine Anwendung ausschließlich Prepared Statements, ist davon auszugehen, dass keine SQL Injection möglich ist, da das Datenbanksystem die Gültigkeit von Parametern prüft, bevor diese verarbeitet werden. Diese Maßnahme gegen SQL Injection ist aber nicht auf alle DBMS anwendbar.


Soll ein Statement mit unterschiedlichen Parametern mehrere Male (z. B. innerhalb einer Schleife) auf dem Datenbanksystem ausgeführt werden, können Prepared Statements einen Geschwindigkeitsvorteil bringen, da das Statement schon vorübersetzt im Datenbanksystem vorliegt und nur noch mit den neuen Parametern ausgeführt werden muss.
Sie besitzen mehrere Vorteile gegenüber direkt ausgeführten SQL Statements. Die Anfrage muss nur einmal geparsed werden, welche dann mehrmals mit anderen Parametern ausgeführt werden kann. Bei der Vorbereitung analysiert und optimiert die Datenbank die Anfrage. Für komplexe und wiederholende Anfragen spart das Ressourcen, Bandbreite und Zeit, weil nur die Parameter und nicht die gesamte Query gesendet wird.
 
Die Nutzereingaben, bzw. die Paramter müssen nicht maskiert werden. Lediglich die SQL Query wird kompiliert und die Parameter als Variable gesehen, welche nie geparsed werden.

Version vom 11. Februar 2020, 18:06 Uhr

Ein Prepared Statement ist eine sogenannte vorbereitete Anweisung für ein Datenbanksystem. Im Gegensatz zu gewöhnlichen Statements enthält es noch keine Parameterwerte. Stattdessen werden dem Datenbanksystem Platzhalter übergeben.

Verwendet eine Anwendung ausschließlich Prepared Statements, ist davon auszugehen, dass keine SQL Injection möglich ist, da das Datenbanksystem die Gültigkeit von Parametern prüft, bevor diese verarbeitet werden. Diese Maßnahme gegen SQL Injection ist aber nicht auf alle DBMS anwendbar.

Sie besitzen mehrere Vorteile gegenüber direkt ausgeführten SQL Statements. Die Anfrage muss nur einmal geparsed werden, welche dann mehrmals mit anderen Parametern ausgeführt werden kann. Bei der Vorbereitung analysiert und optimiert die Datenbank die Anfrage. Für komplexe und wiederholende Anfragen spart das Ressourcen, Bandbreite und Zeit, weil nur die Parameter und nicht die gesamte Query gesendet wird.

Die Nutzereingaben, bzw. die Paramter müssen nicht maskiert werden. Lediglich die SQL Query wird kompiliert und die Parameter als Variable gesehen, welche nie geparsed werden.