MP: Passwort in einer Textdatei auf dem Server sicher abspeichern

Hallo,

Das Administrationsbereich der Seite sollte logischerweise passwortgeschützt sein und nicht nur einen geheimen Link haben. Dem Administrator soll es erlaubt sein, das Passwort zu ändern. Doch wenn dieser einfach in einer Textdatei auf dem Server abgespeichert wäre, könnte man diese Textdatei einfach aufrufen und so das Passwort rausbekommen. Wie kann ich den Text verschlüsselt abspeichern oder die Benutzerrechte dieser Textdatei so setzen, dass diese nur vom Script auf dem Server geschrieben und gelesen werden kann?

MP

  1. Hast Du die Artikel gelesen:

    http://selfaktuell.teamone.de/artikel/server/htaccess/index.htm

    http://selfaktuell.teamone.de/artikel/server/htaccess-faq/index.htm

    Bei höherer Sicherheit wird die Datei .htaccess ausserhalb des durchsuchbaren bzw. erreichbaren Bereichs gespeichert, in einem Serververzeichnis, für das keine Leseberechtigung besteht.

    Falls Du eine eigene Domain hast, kannst Du das testen:
    In Deinem FTP-Verzeichnis ist keine .htaccess vorhanden, wenn Du aber ein neues geschütztes Verzeichnis anlegst z.B. bei Puretec wird dort die .htaccess in das neue Verzeichnis verschoben.
    D.h. Dein Haupt-FTP-Verzeichnis hat eigentlich die höchste Sicherheit, da die .htaccess die größte Entfernung zum Gast hat.

    Gruß
    David

    1. Hi David,

      Bei höherer Sicherheit wird die Datei .htaccess ausserhalb des
      durchsuchbaren bzw. erreichbaren Bereichs gespeichert, in einem
      Serververzeichnis, für das keine Leseberechtigung besteht.

      naja - der Webserver muß ja wohl Leseberechtigung auf dieses Verzeichnis
      haben. Wie soll er denn sonst den Inhalt dieser Datei lesen?

      Das ist insofern ein echtes Problem, als der Webserver meistens nicht
      unter einer privilegierten Kennung läuft und auch kaum eine gemeinsame
      Benutzergruppe für den Webserver und Deine Benutzerkennung existiert.
      Insofern müßte das Verzeichnis tatsächlich für _alle_ Benutzerkennungen
      (auf dem Server - nicht via HTTP!) zum Lesen freigegeben werden.

      Viele Grüße
            Michael

      1. Hi Michael,

        Man kan für jeden User ein eigenes Verzeichnis, zumindest aber eine eigene Datei anlegen. Damit wäre der Zugriff auch wieder eingeschränkt.

        Aber ich gebe zu, daß ich nicht unbvedingt der Richtige bin, um über Details zu streiten, da ich nicht besonders viel Ahnung davon habe.

        Gruß
        David

  2. Hi MP,

    Das Administrationsbereich der Seite sollte logischerweise passwortgeschützt sein und nicht nur einen geheimen Link haben. Dem Administrator soll es erlaubt sein, das Passwort zu ändern. Doch wenn dieser einfach in einer Textdatei auf dem Server abgespeichert wäre, könnte man diese Textdatei einfach aufrufen und so das Passwort rausbekommen. Wie kann ich den Text verschlüsselt abspeichern oder die Benutzerrechte dieser Textdatei so setzen, dass diese nur vom Script auf dem Server geschrieben und gelesen werden kann?

    da Du PHP als Topic gesetzt hast, empfehle ich Dir eine der zahlreichen Verschlüsselungsfunktionen zu verwenden. Beispielsweise kannst Du mit md5() - ich glaube die Funktion heisst so, wenn nicht, noch mal im Manual nachsehen - das Passwort verschlüsseln. Anschliessend speicherst Du es in der Datei. Wenn Du nun die Passworteingabe verschlüsselst und beide Zeichenketten miteinander vergleichst, weisst Du, ob das richtige Passwort eingegeben wurde.

    viele Grüsse
    Achim Schrepfer

  3. Falls du jedoch deine Passwörter nicht per .htaccess in z.B. einer .pwd -Datei speichern willst (kann das php-skript verkomplizieren...), kannst du die Passwörter in eine beliebige Textdatei schreiben lassen (wie Achim sagte, am besten mit md5() oder dergleichen verschlüsseln) und diese in einem Verzeichnis lagern, in das du eine .htaccess-Datei mit folgendem Inhalt reintust:

    order deny,allow
    deny from all

    zusätzlich/stattdessen kannst du natürlich die Zugriffsrechte auf chmod 770 (surfer darf datei nicht lesen/schreiben/ausführen); chmod 000 sperrt jeglichen Zugriff