Hi,
Es ist ja nicht sicher Paßwörter für CGI-Scripts in .txt Datein zu speichern, da die dort die ganze Welt lesen kann.
Letzteres ist einfach unwahr. Es hat nichts mit dem Namen einer Datei zu tun, wer ihren Inhalt lesen kann, sondern mit den entsprechenden Zugriffsrechten.
Gibt es eine Möglichkeit die Dateirechte so zu setzen das sie nicht über http gelesen werden können und Paßwörter darin sicher sind?
Der wichtigste Punkt ist, den Angreifer zu identifizieren. In Deinem Falle soll das also http sein.
Die einfachste und sicherste Methode, eine Passwortdatei vor einem http-Zugriff zu verstecken, ist, die außerhalb des URL-Baums anzulegen. Wenn es keinen URL gibt, welcher diese Datei adressiert, dann *kann* niemand sie lesen, und entsprechende Schutzeinstellungen werden unnötig.
Das CGI-Skript selbst greift auf diese Datei per Pfadname zu und kann sie natürlich weiterhin lesen.
Ist es überhaupt sicher Paßwörter in einem Script zu speichern oder kann man irgendwie von außen an die Daten ran?
Wie schon gesagt: Gegen Angriffe via http ist beides gleich sicher (den Quelltext des Skripts kann via http auch niemand lesen, sofern der Webserver nicht falsch konfiguriert ist.)
Wenn der "Feind" aber auf Deinem Server sitzt (sagen wir mal, via telnet oder ftp oder eigener CGI-Anwendung), *dann* sind die Zugriffsrechte auf Deine Dateien ausschlaggebend. Und sollten diese *nicht* gut sein, *dann* liefert eine Verschlüsselung der gespeicherten Passworte immerhin einen Schutz gegen Lesezugriffe.
Wenn der Feind aber sogar auf Deinem Server Systemadminstrator-Privilegien besitzt (egal ob legal oder illegal), dann hilft nur noch wenig. Er kann dann den Inhalt Deiner Passwortdatei lesen, ggf. zwar nicht verstehen (crypt), aber dennoch verändern, und damit kommt er wahrscheinlich überall hinein.
mfG - Michael