Java - Datenbank Credentials sicher verwahren?

  • Wenn ich einen Java Client schreiben möchte, wie schütze ich die Datenbank Credentials darin vor Reverse Engineering?

    Aaaaaaaaaaaaaaaaaaaaaaaaaaaaahc++aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah ich hasse dich!

  • 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...?

    "All through my life I've had this strange unaccountable feeling that something was going on in the world, something big, even sinister, and no one would tell me what it was."
    "No," said the old man, "that's just perfectly normal paranoia. Everyone in the Universe has that."

    😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏😐😒😓😔😖😘😚😜😞😠😡😢😣😥😨😩😪😫😭😰😱😲😳😵😶😷

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!