Prepared Statement: Unterschied zwischen den Versionen

aus GlossarWiki, der Glossar-Datenbank der Fachhochschule Augsburg
Kowa (Diskussion | Beiträge)
Kowa (Diskussion | Beiträge)
Zeile 3: Zeile 3:
=Definition=
=Definition=


Prepared statements sind, wie der Name schon sagt, vorbereitete Statements für ein Datenbank-
[[Prepared Statement]]s sind parametrisierte, vorübersetzte ([[SQL]]-)Anweisungen für ein [[Datenbank-Management-System]] (DBMS).
System und enthalten noch keine Parameterwerte.


Statt der Parameter werden Platzhalter an das Datenbanksystem übergeben, d.h. die SQL-Befehle und die tatsächlichen
=Bemerkungen=
Parameterwerte (die dann statt den Platzhaltern eingetragen werden), werden vom Skript getrennt an das [[API]]
 
übertragen und somit ist die für die SQL Injection nötige Durchmischung nicht mehr ohne weiteres
Bei der Erzeugung eines [[Prepared Statement]]s werden an Stelle von Parameterwerten Platzhalter für die Parameter an das DBMS übergeben.
zu erreichen.
Erst beim Aufruf eines [Prepared Statement]]s werden Parameterwerte übergeben.
 
Auf diese Weise können insbesondere [[SQL Injection|SQL-Injection-Attacken]] vermieden werden,
da die dafür nötige Vermischung von [[SQL]]- und Hostsprache-Code nicht mehr ohne Weiteres
möglich ist.


Darüber hinaus werden die Parameter beim Eintragen zunächst vom DB-System
Darüber hinaus werden die Parameter beim Eintragen zunächst vom DB-System

Version vom 26. Juni 2007, 09:12 Uhr

Dieser Artikel wird derzeit von einem Autor gründlich bearbeitet. Die Inhalte sind daher evtl. noch inkonsistent.

Definition

Prepared Statements sind parametrisierte, vorübersetzte (SQL-)Anweisungen für ein Datenbank-Management-System (DBMS).

Bemerkungen

Bei der Erzeugung eines Prepared Statements werden an Stelle von Parameterwerten Platzhalter für die Parameter an das DBMS übergeben. Erst beim Aufruf eines [Prepared Statement]]s werden Parameterwerte übergeben.

Auf diese Weise können insbesondere SQL-Injection-Attacken vermieden werden, da die dafür nötige Vermischung von SQL- und Hostsprache-Code nicht mehr ohne Weiteres möglich ist.

Darüber hinaus werden die Parameter beim Eintragen zunächst vom DB-System auf Gültigkeit geprüft bevor sie verarbeitet werden.

Als angenehmen Nebeneffekt bringen die Prepared statements den Vorteil mit sich, dass durch die Vorverarbeitung der Abfragen eine schnellere Verarbeitungszeit der Abfragen möglich ist.

Quellen

  • [1] Paul Sebastian Ziegler: XSS – Cross-Site Scripting. hakin9 - Hard Core IT Security Magazin 2007, Heft 1, S. 20ff
  • [2] Christiane Rütten, Tobias Glemser: Gesundes Misstrauen – Sicherheit von Webanwendungen. c’t 2006, Heft 26, S. 234ff

Siehe auch