Verz. bzw Datei schützen
Joren
- webserver
Hallo!
Ich möchte verhindern, dass eine .txt Datei, die in einem Unterverzeichnis auf meinem Homepage server liegt, vom web aus angesehen werden kann. (passwortdatei) Sie soll aber vom web aus über perl noch geändert oder überschrieben werden können.
Ich hab schon einige Antworten zu dem Thema gesehen - mit .htaccess soll das irgendwie gehen. Find ich ziemlich kompliziert und ich möchte auch keine Fehler machen -hab da schon ein Projekt am Laufen.
Meine Frage: Kann man auch einfach über Chmod das verzeichnis oder die Datei für den normalen webuser unzugänglich machen, und wenn das geht, wie?
Vielen Dank......Joren
Moin,
wenn dir die passwortdatei _wichtig_ ist, wirst du um .htaccess nicht herum kommen. Soooo schwierig ist das auch nicht, wenn du die Atikel von Michael Schröpl hierzu gelesen hast :-) http://www.teamone.de/selfaktuell/artikel/schroepl01.htm
http://www.teamone.de/selfaktuell/artikel/schroepl01.htm
Wenn nicht, ist es eine einfache, aber nicht hundertprozentige Lösung, die Datei in ein beliebiges Inhaltsverzeichnis zu packen, das ein index.htm beinhaltet. Wenn die Datei dann einen eher ungewöhnlichen Namen trägt (etwa: 1w3_5hu8g.q4t) und von nirgend woher verlinkt ist, dann hast du schon viel getan. .htaccess solltest du aber immer vorziehen!
Swen
Hallo .Joren,
so geht's:
Pack einfach in das zu schützende Verzeichnis eine Datei mit Namen .htaccess, in der folgendes steht:
Satisfy all
Order deny,allow
Deny from all
Testen nicht vergessen! (-:
Noch besser ist es natürlich, die Paßwortdatei nicht unterhalb von DocumentRoot abzulegen, sondern irgendwo wo man mit dem Browser auf keinen Fall rankommt.
CYa
GONZO
Ich habs mal mit .htaccess getestet - geht nicht - jetzt liest er die Datei nicht mehr ein, wenn ich sie übers
perlscript einlesen will.
Bei der Ausgabe hat er nur
Satisfy all
Order deny,allow
Deny from all
zurückgegeben - er scheint das Verzeichnis selbst für mein perlscript abgeriegelt zu haben. Das ist
zuviel, ich möchte ja nur, dass der Websurfer mit seinem Browser die datei nicht anzeigen und Öffnen
kann, wenn er sie in die Kommandozeile eintippt.
Alle User sollen jedoch das Perl-Script verwenden dürfen, um die Datei zu verändern.
Übrigens...wie krieg ich dieses .htaccess teil da jetzt wieder weg - es ist einfach verschwunden in
meinem ftp programm...
Dankbar für jede Hilfe, cya...........Joren
Hallo Joren
Meine Frage: Kann man auch einfach über Chmod das verzeichnis oder die Datei für den
normalen webuser unzugänglich machen, und wenn das geht, wie?
Zwei Lösungen:
1.
Wenn Du die Datei in Dein CGI-Verzeichnis legen kannst (und der Server richtig konfiguriert ist), dann kann diese Datei per HTTP-Protokoll, also von einem beliebigen User nicht eingesehen werden, unabhängig von den Dateirechten. Leicht zu überprüfen: Kopiere die Datei dahin und rufe sie im Browser auf: http://www.domain.de/cgi-bin/password.txt. Das sollte zu einer Fehlermeldung führen. Wenn ja - Problem gelöst!
2.
Die Datei in ein anderes Verzeichnis legen und per chmod 600 nur für Dich les- und schreibbar machen. Das geht aber nur, wenn Dein CGI-Script unter DEINER UserID läuft. Sonst wird das Script wie ein anderer User behandelt und kann nicht zugreifen. Allerdings laufen wohl bei den meisten Providern die Scripts NICHT unter der ID des Scripteigemntümers, sondern unter nobody oder so.
Gruß Frank
P.S.
Mit diesem "Scriptchen" kannst Du eventuell rauskriegen, unter welcher UserID das Script läuft. Kopiere es auf den Server und starte es per Browser (http://...) Ist der ReturnCode=0 und steht bei uid Dein UserName, dann geht auch der 2.Weg.
#!/usr/bin/perl
$output = id
;
print "Content-type: text/html\n\n";
print "Return Code:$?\n";
print $output;
Danke, hab alles probiert - hat aber leider alles nicht geklappt.
Nunja...
Hi Joren!
Danke, hab alles probiert - hat aber leider alles nicht geklappt.
Einen hab ich noch...
Benenn die Datei um in .pl, schreibe in die erste Zeile #! /usr/bin/perl und lege sie in Dein CGI-Verzeichnis. Wenn nun einer versucht, die Datei im Browser zu öffnen, dann wird der Server versuchen,diese als Perlscript zu starten. Und das führt dann zu dem berühmten "Internal Server Error 500".
Gruß Frank
P.S. Warum ging denn die erste Lösung von mir nicht? Konntest Du die Datei im Browser öffnen?