Paßwort in externer Datei
Alex
- cgi
0 Steffen Wawryniuk0 ceejay0 klaus0 Michael Schröpl
Hallo,
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. 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?
Ist es überhaupt sicher Paßwörter in einem Script zu speichern oder kann man irgendwie von außen an die Daten ran?
mfg
Alex
das 1. was ich immer mache sind die DateiRechte runterzunemen...
auf 604
2. sollte man die Datei im CGI-BIN ablegen, da man in dieses Verzeichnis NIORMALERWEISE nicht direkt zugreifen kann
3. kann man die Passwörter ja noch mit crypt Verschlüsseln
das 1. was ich immer mache sind die DateiRechte runterzunemen...
auf 604
sollte man die Datei im CGI-BIN ablegen, da man in dieses Verzeichnis NIORMALERWEISE nicht direkt zugreifen kann
kann man die Passwörter ja noch mit crypt Verschlüsseln
Bei meiner ABITUR 2001-Page liegen die Jahrgangs-Internen Daten (ABI-GAG Termin, usw.) nicht im CGI-BIN, sondern in einem Unterverzeichnis, was via HTTP durch .htacces und .htpasswd geschützt ist. Hilft vor allem, WENN man direkt auf das CGI-BIN-Verzeichnis zugreifen kann. Zudem ist CHMOD auf 604, sowie weitere Verschlüsselung der Daten ratsam.
Hallo,
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. 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?
Ist es überhaupt sicher Paßwörter in einem Script zu speichern oder kann man irgendwie von außen an die Daten ran?
mfg
Alex
ich habe die erfahrung gemacht, das auf unix rechner, allen pfaden unterhalb des cgi-bin die gleichen Rechte anheim fallen, und diese schliessen meist nur ausführen (für welt) ein. soll heissen ein simpler aufruf von http://server/cgi-bin/passwords.txt funktioniert dort nicht (nur unter Windows (IIS) geht das bei standardeinstellungen) es gibt einen :
Forbidden
You don't have permission to access /cgi-bin/password.txt on this server.
im falle eines scripts (solange der server weiss was er damit machen soll) führt er dieses aus.
allerdings im falle von FTP sieht das anders aus, -hast du zugang/berechtigung für das directory (user/groups) dann is asche mit sicherheit, dann kannste logger mal eben das script oder cfg-datein downloaden.
---
bei passwörtern arbeite ich generell mit crypt() bzw. ähnlichem (TripleDES), indem ich die passwörte grundsätzlich verschlüssele, und die verschlüsselten passwörter vergleiche (standard-system).
deshalb liegen auch nur verschlüsselte rum, und ein verschlüsseltes passwort übergeben würde nur zu einer weiteren verschlüsselung des bereits verschlüsselten passworts führen, und der vergleich schlägt fehl...
correct me if i'm wrong ;)=
ceejay
mfg
ceejay
Hallo,
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. ...
Wenn die Dateien browseable (Also über einen URL erreichbar) sind, dann sicher nicht.
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?
Dann kann sie aber Dein Script auch nicht lesen.
Du kannst die Datei auch irgendwo anders auf dem Server ablegen, so daß sie nicht im Webserver-Bereich sind, und nicht unbeding .txt nennen.
Ist es überhaupt sicher Paßwörter in einem Script zu speichern oder kann man irgendwie von außen an die Daten
ran?
Eigentlich nahezu genauso unsicher, wie in einer Textdatei. Jemand der auf dem Server einen FTP- oder Telnet-Zugang hat, könnte die Datei trotzdem lesen können.
Und dann ist ja das Problem, daß Du direkt die Script-Datei bearbeiten mußt, wenn Du ein Passwort ändern willst. Find' ich eigentlich gar nicht gut.
Ich weiß nicht, aber ich hoffe wir reden hier von verschlüsselten Passwörtern. wenn nicht, dann ist sowieso massiver Handlungsbedarf.
Ich denke zumindest 'gecryptete', also mit der Funktion 'crypt' berabeitete Passwörter sollten es schon sein. Ich weiß schon, daß das nicht unbedingt das Gelbe vom Ei ist, aber für einfach dinge reichts m.E. immer noch. Oder gehts hier um staatstragende Geheimisse, die geschützt werden sollen ;-)
Grüße
Klaus
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