Wenn ich einen Java Client schreiben möchte, wie schütze ich die Datenbank Credentials darin vor Reverse Engineering?
Java - Datenbank Credentials sicher verwahren?
-
NoxMortem -
17. Oktober 2012 um 19:32 -
Unerledigt
-
-
du meinst du möchtest die credentials im code selbst drin haben und sicher stellen, dass wenn du den client verteilst niemand diese auslesen kann?
geht eigentlich nicht.
das einzige was du machen könntest, wäre benutzernamen und passwort irgendwie zu verschleiern und einen obfuscator zu verwenden damit es nicht ganz so leicht ist die daten auszulesen. aber letzendlich bringt das nicht wirklich viel, denn wenn du die verbindung zur datenbank herstellen möchtest musst du ja doch wieder username und passwort im cleartext angeben. und in java ist es ein kinderspiel so einen methodenaufruf abzufangen, z.B. mit hilfe des debuggers, oder durch bytecode manipulation mittels javassist oder aspectj und dergleichen, oder man ersetzt den jdbc driver durch eine eigenimplementierung die nichts anderes macht als die credentials auszugeben...
clients die sich direkt mit einer datenbank verbinden sind ziemlich unüblich, normalerweise hat man einen business layer dazwischen mit einem geeigneten sicherheitskonzept das sicher stellt das jeder benutzer nur genau das machen kann was er darf.
Klar, das könnte man das auch in der datenbank machen, für jeden benutzer einen datenbankuser anlegen mit entsprechenden berechtigungen, aber ob das wirklich eine gute idee ist...? -
Maximilian Rupp
27. Dezember 2024 um 00:26 Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!