AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Sind die ADO-Komponenten in D2006 SQL-Injection sicher?
Thema durchsuchen
Ansicht
Themen-Optionen

Sind die ADO-Komponenten in D2006 SQL-Injection sicher?

Ein Thema von quso · begonnen am 18. Jan 2007 · letzter Beitrag vom 18. Jan 2007
Antwort Antwort
quso

Registriert seit: 1. Okt 2005
Ort: Kleve
18 Beiträge
 
Turbo Delphi für Win32
 
#1

Sind die ADO-Komponenten in D2006 SQL-Injection sicher?

  Alt 18. Jan 2007, 15:50
Datenbank: MSSQL • Version: 2005++ • Zugriff über: ADO
Ich habe kürzlich einiges über SQL-Injection gelesen und da stellt sich mir die Frage, wie sicher die Delphi Komponenten sind.
Bsp.:
Ich verwende einen ADO-Query, welchem mittels Parameter Werte für den SQL-String zugewiesen werden. Werden diese Parameter nun überprüft oder kann hier Schadcode eingeschmuggelt werden?

Vielen Dank im voraus.
  Mit Zitat antworten Zitat
Benutzerbild von f.siebler
f.siebler

Registriert seit: 15. Jan 2007
Ort: Hamburg
170 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Sind die ADO-Komponenten in D2006 SQL-Injection sicher?

  Alt 18. Jan 2007, 15:54
das hängt auch hier von der Programmierung ab... je nachdem welche Typen du für die Parameter festlegst.....
Viele Grüße aus Hamburg
Fabian
sql-praxis.net: sql von der Theorie in die Praxis...
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Sind die ADO-Komponenten in D2006 SQL-Injection sicher?

  Alt 18. Jan 2007, 15:54
Zitat von quso:
Ich verwende einen ADO-Query, welchem mittels Parameter Werte für den SQL-String zugewiesen werden. Werden diese Parameter nun überprüft oder kann hier Schadcode eingeschmuggelt werden?
Parameter sind IMHO die enizig sinnvolle Art Werte an ein SQL Statement zu geben. Da sie im Statement selbst nur als Variablen auftauchen kann ihr Inhalt die Syntax des Statements nicht aushebeln.
Kurz gesagt: Du hast bereits richtig gehandelt bevor du über SQL Injections gelesen hast.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Sind die ADO-Komponenten in D2006 SQL-Injection sicher?

  Alt 18. Jan 2007, 15:57
Zitat:
Ich habe kürzlich einiges über SQL-Injection gelesen und da stellt sich mir die Frage, wie sicher die Delphi Komponenten sind.
Die Komponenten sind so so sicher wie sie verwendet werden.

Zitat:
Ich verwende einen ADO-Query, welchem mittels Parameter Werte für den SQL-String zugewiesen werden. Werden diese Parameter nun überprüft oder kann hier Schadcode eingeschmuggelt werden?
Wenn du parametrisierte Abfragen verwendest bist du gegen SQL-Injection von deiner Anwendung aus sicher. Dann müssen schon auf der SQL-Server-Seite Bugs vorhanden sein das diese Parameter nicht richtig behandelt werden. Das sind aber nicht mehr deine Fehler sondern ein Fehler der DBMS-Software.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: Sind die ADO-Komponenten in D2006 SQL-Injection sicher?

  Alt 18. Jan 2007, 16:21
SQL Injections basieren auf sowas: http://www.irgendwas.de/search.php?get=title='123'

da könnte man sowas machen als Beispiel: http://www.irgendwas.de/search.php?get=title='123' or ''=''

dann werden einfach alle Einträge angezeigt. Solange man nicht direkt die Parameter an SQL weitergibt kann nichts passieren.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
quso

Registriert seit: 1. Okt 2005
Ort: Kleve
18 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Sind die ADO-Komponenten in D2006 SQL-Injection sicher?

  Alt 18. Jan 2007, 19:25
Zitat von Florian Bernd:
SQL Injections basieren auf sowas: http://www.irgendwas.de/search.php?get=title='123'

da könnte man sowas machen als Beispiel: http://www.irgendwas.de/search.php?get=title='123' or ''=''
Das man Get-Variablen vor der Benutzung in SQL-Anweisungen kontrollieren muss, ist klar. Deshalb war ich mir bei folgendem unsicher, da dieses doch eigentlich das gleiche ist:

AdoQuery1.SQL:= 'Select * from foo where (Username=aramUsername) and (Passwort=aramPasswort)';
AdoQuery1.Parameters.ParamByName('ParamUsername'). Value:= Edit1.Text;
AdoQuery1.Parameters.ParamByName('ParamPasswort'). Value:= Edit2.Text;


Zitat von Elvis:
Da sie im Statement selbst nur als Variablen auftauchen kann ihr Inhalt die Syntax des Statements nicht aushebeln.
Wunderbar!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz