AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Sicherheit eines offenen Querys

Sicherheit eines offenen Querys

Ein Thema von Mr_G · begonnen am 19. Jun 2006 · letzter Beitrag vom 20. Jun 2006
Antwort Antwort
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#1

Sicherheit eines offenen Querys

  Alt 19. Jun 2006, 21:17
Datenbank: MySQL • Version: 5.0 • Zugriff über: Zeos
Hallo,
ich habe mal eine hoffentlich leicht zu lösende Geschichte:
Und zwar schreibe ich gerade in einem zweier-Team an einer Verwaltungssoftware und stehe vor einem Problem: Ich möchte eine Tabelle in mein Programm auslesen und bearbeiten. So weit so gut. Ich hätte jetzt spontan ein Query genommen, eine entsprechende Abfrage formuliert, das ganze mittels Connection und DataSource etc. verbunden und in ein DataGrid lesen lassen... das Ganze zur Laufzeit aktivieren - fertig wäre die Schose.

Nun möchte mich mein "Mitentwickler" aber dazu überreden die Daten einmal in ein normales Grid o.ä. auszulesen um das Query dann schließen zu können. Als Begründung erklährte er mir, dass ein ("lange") offenes Query eine Sicherheitslücke darstellt.

Ich sehe in dem Ganzen jedoch nur eine Menge Arbeit die eher schadet als nützt, denn ich denke, dass Borland sich bei seinen Datensteuerungskomponenten was gedacht hat und es diese bestimmt nicht ohne Grund gibt (große Datenmengen z.B.?).

Mein Frage(n) lautet(n) nun:
Ist ein offenes Query eine Sicherheitslücke?
Wenn ja, wie groß (mit nem Sniffer und viel Zeit knackt man alles)?
Und wie sollte ich das Auslesen umsetzen, damit ich sowohl auf der sicheren als auch auf der einfachen und performaten Seite bin?

Danke im Voraus

Mr_G
Jan
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Sicherheit eines offenen Querys

  Alt 19. Jun 2006, 21:21
Wo befinden sich Server/Client. Wieviele Clients?
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Sicherheit eines offenen Querys

  Alt 19. Jun 2006, 22:11
Server und Client befinden sich wahrscheinlich in einem eigenen VLAN.
Außerdem gehe ich von mindestens 2 bis 3 Clients aus (möglich sollten natürlich auch mehr sein aber aktuell gibt es noch keine obere Grenze).
Jan
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#4

Re: Sicherheit eines offenen Querys

  Alt 20. Jun 2006, 09:05
Hm, ich sehe keinen Unterschied in der Sicherheit bei deiner Query und einer lokal zwischengespeicherten Abfrage.
Benutzt du zb. bei deiner Query Cached Updates, so hat dies zum Erfolg das einmalig alle Datensätze deiner Abfrage lokal geladen werden und dann nur auf dem lokalen Dataset gearbeitet wird. In diesem Moment wird zeitlich gesehen ja auch nur eine Abfrage gesendet und komplett alle Resultate geladen. Aus Sicht des Netzwerk Traffics ergibt sich ein identischer zeitlicher Verlauf zu dem Vorschlag deinen Mitentwicklers. Das heist dann auch das bei beiden Varianten identische Sicherheist-"lücken" exisistieren müssen, und defakto keinerlei Unterschied mehr existiert. Beides wäre gleichermaßen sicher wie auch unsicher.
Aber der relevante Unterschied wäre das du die einmal weniger und das anderemal viel mehr zusätzlichen Programmieraufwand einhandelst.

Ich meine also: bleibe bei deiner normalen Abfrage da es aus Sicherheitsaspekten keinerlei Unterschiede macht. Du könntest noch Query.CachedUpdates := True setzen um die Datenmenge in einem Rutsch lokal zu laden.

Lass dir von deinem Mitstreiter mal erklären WARUM das unsicherer sein sollte (mit Fakten und eventuellen Links).

Normalerweise versucht das Grid der VCL nur diejenigen Daten zu laden die es auch anzeigt. Wenn wir mal von 1000 Datensätzen ausgehen bei denen aber nur 10 im Grid angezeigt werden können, dann ergäbe sich folgendes Bild:

Angreifer lauscht passiv am TCP/IP Traffic und kann somit nur mitschneiden und nicht interaktiv abfragen.
Das Grid wird nur die ersten 10 Datensätze anfordern zu Anzeige, von 1000 möglichen. Scrollt der Anwender niemals im Grid so kann der Angreifer nur 10 Datensätze mitschneiden, also niemals alle 1000.

Holst du aber per Cached Updates oder mit der Methode deines Mitstreiters sofort alle 1000 Datensätze ab um sie lokal zu speichern, wird der Angreifer auch alle 1000 Datensätze mitschneiden können.

Es ist also sogar so das es damit unsicherer wäre.

All dies setzt erstmal vorraus das die Kommunikation übers TCP/IP unverschlüsselt ist. Dies lässt sich aber über VPN Verbindungen extern ziemlich einfach verschlüsslt absichern.

Gruß Hagen
  Mit Zitat antworten Zitat
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

Re: Sicherheit eines offenen Querys

  Alt 20. Jun 2006, 09:36
Also ich kann mich da Hagen nur anschliessen.

Also wenn man alle Daten aufeinmal holt wird sich der Anwender wohl bedanken das er soviele Kaffenpausen machen darf

und wenn man die kommunikation sicher haben will stellt man den Mysql Server auf SSL kommunikation um, das sollte auch mit Zeos gehen glaub ich.
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Benutzerbild von Mr_G
Mr_G

Registriert seit: 2. Sep 2004
Ort: Duisburg
468 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Sicherheit eines offenen Querys

  Alt 20. Jun 2006, 18:26
Danke erstmal für die ausführlichen Erklärungen!

Ich habe noch mal mit meinem Mitentwickler gesprochen und seine Skepsis gründete nur auf Halbwissen und ein par Vermutungen.

Die Verschlüsselung per VPN hatten wir beide aufgrund anderer Gegebenheiten in Bezug auf das Projekt auch im Hinterkopf und werden VPN daher wahrscheinlich auch einsetzen.
Die Idee mit der Konfiguration des MySQL-Servers für SSL hört sich auch super an!

Fazit: Vielen Dank für die schnelle und kompetente Hilfe!
Ihr habt mir eine Menge Arbeit und Nerven erspart!

Mr_G
Jan
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 21:10 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