[Python-de] Datenbank Passworte unterbringen

Gerhard Häring gh at ghaering.de
Fri May 9 12:54:55 EDT 2003


Martin v. Löwis wrote:
> Andreas Kaiser <listen at vocote.de> writes:
> 
> 
>>Es geht darum, die Daten für den DB-Connect zusammen mit dem Programm so 
>>abzulegen, dass user/pw nicht jedesmal neu eingegeben werden muss. Die 
>>beste Stelle wäre ein Configfile. Die Benutzer (unter den versch. Windows 
>>"Dialekten") dürfen die DB Zugangsdaten aber nicht wissen, da sie sehr 
>>"verspielt" sind. Ausserdem ist die Ablage als nicht-Klartext Vorgabe. 
>>Unter Unix sehe ich keine Probleme (Stichwort Zugriffsrechte).
> 
> Gerhards Vorschlag mit rot13 ist sicher das Beste, was Du finden
> kannst.

Bei Python gibt es natürlich auch die Möglichkeit, dem Endbenutzer nur 
die .pyc bzw. .pyo-Files zu geben.

> [...] Also bleibt Dir nur das Verbergen. Zum einen kannst Du den Schlüssel
> an eine Stelle legen, wo ihn der Nutzer nicht vermutet, unter Windows
> beispielsweise an einer seltsamen Stelle der Registry (etwa unter dem
> Schlüsselnamen \HKLM\Software\etocov\UpdateFrequency),

HKCR (HKey Classes Root) hat sich bei mir bewährt :-) Da stehen normal 
nur die Class-IDs von COM-Komponenten u. ä. drin. Es ist so 
unübersichtlich, dass da eh keiner durchsteigt :-)

Als zusätzlichen Gimmick dann noch den Quelltext so ummodeln, dass man 
nicht mit einem einfach strings-Befehl den Key rausfinden kann.

Angenommen der wirkliche Pfad wäre:
HKEY_CLASSES_ROOT\Xmencmp3.MP3Encoder3\CLSID

dann das noch rot13-decoden, ebenso wie den Namen des benötigten Moduls 
(winreg) und den Aufruf der benötigten Funktion darin. So ähnlich (nur 
in Java) hab ich das mal im wirklichen Leben implementiert gesehen.

Natürlich kann man dann mit einem Python- (bzw. Java-) Debugger immer 
noch dran kommen, aber man muss halt erst mal die richtige Stelle im 
Programm finden.

> unter Unix in
> /etc/apache/httpd.conf.

Es sollte halt nix sein, was potentiell verändet wird

 > Je besser Du ihn verbirgst, desto wahrscheinlicher ist,
 > das der Admin sich angegriffen fühlt, wenn er es entdeckt....

Der Admin muss per Definition wissen, wass auf seiner Maschine abgeht 
und welche sensitiven Informationen wo liegen. Ich würde ihm das also 
ganz klar mitteilen. Es geht nur evtl. die Enduser nix an.

Der Fall Enduser == Admin ist in meinem Weltbild nicht vorgesehen ;-)

-- Gerhard




More information about the Python-de mailing list