Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   FireBird - Prepared Statement - SQL Injection (https://www.delphipraxis.net/137182-firebird-prepared-statement-sql-injection.html)

fkerber 15. Jul 2009 20:47

Datenbank: Firebird • Version: 2

FireBird - Prepared Statement - SQL Injection
 
Hi!

Das Ganze ist jetzt vom Quelltext her PHP, aber ich denke, es ist allgemein genug, dass man es trotzdem hier schreiben kann ;)

Ist folgendes "Vorgehen" sicher bzg. SQL Injections?
Code:
$sql = ibase_prepare($db, "SELECT id FROM user WHERE username=? AND passwd = ?");
$res = ibase_execute($sql, $_POST['username'], $_POST['passwd']);
Oder kann man jetzt hier immer noch irgendetwas "Böses" machen?


Grüße, Frederic

Bernhard Geyer 15. Jul 2009 20:58

Re: FireBird - Prepared Statement - SQL Injection
 
Prepared Statements sind sicher - außer es liegt ein Fehler im SQL-Parser der Datenbank vor. Bei solch einem ist aber der Hersteller des DBMS am zug.

fkerber 15. Jul 2009 21:00

Re: FireBird - Prepared Statement - SQL Injection
 
Gut, das ist bei FB hoffentlich nicht zu erwarten.

Oder gibt es noch einen sichereren Weg, der auch für sowas noch sicher wäre?


Grüße, Frederic

mkinzler 15. Jul 2009 21:06

Re: FireBird - Prepared Statement - SQL Injection
 
Den Code in SPs verlagern

fkerber 15. Jul 2009 21:10

Re: FireBird - Prepared Statement - SQL Injection
 
Inwiefern macht das die Sache sicherer? Und wie wäre das von der Performance her?
Wenn ich das richtig sehe, hätte ich dann eine SP, die Benutzername und Passwort erwartet und wahlweise die ID oder -1 zurückliefert?

Ist es lohnenswert, alle derartigen Abfragen in SPs auszulagern oder gibt es da auch Nachteile?


Grüße, Frederic

Bernhard Geyer 15. Jul 2009 21:20

Re: FireBird - Prepared Statement - SQL Injection
 
Zitat:

Zitat von fkerber
Ist es lohnenswert, alle derartigen Abfragen in SPs auszulagern oder gibt es da auch Nachteile?

Wenn man mehrere DBMS unterstützen wird ist es mit mehr Aufwand und Know-How verbunden (Jedes DMBS kocht ihr eigenes SP-Süppchen). Performancetechnich ist auch nicht viel gewonnen wenn man mit prepared Statements arbeitet.

mkinzler 15. Jul 2009 21:25

Re: FireBird - Prepared Statement - SQL Injection
 
Zitat:

Performancetechnich ist auch nicht viel gewonnen wenn man mit prepared Statements arbeitet.
Das kommt aber auch auf die komplexität der Abfragen an

Bernhard Geyer 15. Jul 2009 21:41

Re: FireBird - Prepared Statement - SQL Injection
 
Zitat:

Zitat von mkinzler
Zitat:

Performancetechnich ist auch nicht viel gewonnen wenn man mit prepared Statements arbeitet.
Das kommt aber auch auf die komplexität der Abfragen an

Wenn man sich noch selbst einen Cache der Prepared Statements anlegt braucht der Queryplan nur einmal währen der Programmlaufzeit erzeugt werden - und ist dann immer frisch :-)

mkinzler 15. Jul 2009 21:44

Re: FireBird - Prepared Statement - SQL Injection
 
Es ging mir nicht um den Queryplan, sondern um die Reduktion der Datenmenge bzw. Verlagerung von Logik vom Client zum Server

fkerber 15. Jul 2009 21:51

Re: FireBird - Prepared Statement - SQL Injection
 
Hi!

Ok, das ist schon zu viel für mich ;)
Kann man das auf einfacherem Niveau für mich erklären? :mrgreen:

Also:
SP besser, weil?
oder
Egal
oder
Prepared besser, weil?

Oder evtl. Umstände unter denen das eine besser ist als das andere.
Performance ist nicht unwichtig, da es viele gleichzeitige Zugriffe geben könnte, aber die einzelnen Zugriffe werden eher einfache Selects / Inserts etc sein werden...


Grüße, Frederic


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:06 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz