AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Sicherheit für Datenbankclient

Sicherheit für Datenbankclient

Ein Thema von bundy · begonnen am 6. Apr 2006 · letzter Beitrag vom 7. Apr 2006
Antwort Antwort
Benutzerbild von bundy
bundy

Registriert seit: 24. Mai 2003
Ort: Eisenstadt
438 Beiträge
 
Delphi 2007 Architect
 
#1

Sicherheit für Datenbankclient

  Alt 6. Apr 2006, 14:59
Datenbank: Oracle • Version: 9i • Zugriff über: RemObject
Hi !

Ich arbeite momentan an einem Kundenverwaltungssystem, welches Modems Email´s Accounting...uvm verwaltet.
Ich verwände Orcale 9i als Datenbank dahinter. Der Zugriff erfolgt mittels RemObject & Dataabstract.

Client ----- Middelware------Database

Nun meine Frage zur Sicherheit.

Das Programm besitzt über einen Userloggin ,je nach Berechtigung kann der User gewisse sachen machen, oder auch nicht.

Da ich in einem anderen Thread schon mal gefragt habe über die Sicherheit von Visible oder Enable von Komponenten, und dieses als unsicher eingestuft worden ist, hab ich mir folgendes überlegt.

Wenn jemand einen Knopf drückt am Client z.B.

Delphi-Quellcode:
procedure Button1Click ....
begin

//machwas

end;
dann könnte ich doch in der DB einen Table anlegen, wo ich solche Proceduren aufnehme z.b

|ID|Name|
1|Button1Click

und diese mit dem Benutzertable verlinke.

Allso wenn jetzt ein User diese Procedure auslöst, eine Anfrage am Server mache, ob er sie auslösen darf.
z.b
UserID:Integer;
ProcedureID:integer;
checkUserPermission(UserID,ProcedureID):boolean

Ich würde dann zum Server UserID und ProcedureID senden und einen Rückgabewert mit false oder true erhalten.

Denke ich da richtig ? oder ist das auch ein Risiko?
Weil UserID und ProcedureID könnte man ja auch manipulieren oder?

Was würdet Ihr da Vorschlagen

lg
Bundy
+++Glaube keiner Statistik, die du nicht selbst getürkthast.++++
********************
Ein anonymer Statistiker. *
********************
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Sicherheit für Datenbankclient

  Alt 7. Apr 2006, 08:03
Guten Morgen, Bundy.

Um eine möglichst hohe funktionale Sicherheit einer DB-Anwendung zu erreichen werden oft detaillierte Rechte an jeden User vergeben. Das Problem mit dem GUI-Client ist, dass zu keinem Zeitpunkt Aktionen angestoßen werden sollen, die im aktuellen Benutzerprofil unzulässig sind. Das Deaktivieren von UI-Controls erfüllt die Erwartungshaltung des Benutzers und die Berechtigungen im RDBMS garantieren die Sicherheit. Da eine zu enge Verzahnung von Client und RDBMS im Bereich der Rechte weder praktikabel noch wünschenswert ist, wurden von vielen Herstellern application roles eingeführt.

Die Rechte werden nicht mehr an den User, sondern an die Role gebunden. Dem User werden keine Rechte auf Datenobjekte mehr eingeräumt, sondern nur noch das Recht eine bestimmte Rolle einzunehmen. Das auf der Rolle basierende Benutzerprofil wird im UI Mangement Code der Anwendung nachgebildet. Der Vorteil dieses Ansatzes ist ein Höchstmaß an Sicherheit und Bedienungskomfort. Der Nachteil ist, dass eine neue Rolle Änderungen am Quelltext nötig macht. Ich halte diesen Nachteil nicht für gravierend, da der Nachführungsaufwand auf der Anwendungsseite eher klein ist, wenn man ihn mit dem konzeptionellen Aufwand vergleicht.

Die von dir vorgestellten Tabellen - hier und in deinem anderen thread - halte ich nicht für produktiv. Ich setze da eher auf zentrales Action-Management.

Grüße vom marabu
  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 11:33 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