Peter: Zugriffsteuerung auf Dateien wie realisieren?

Hallo,

ich mache mir gerade Gedanken über eine Zugriffsteuerung auf Dateien.

Um den Zugriff auf bestimmte Dateien unterbinden zu können, kann ich diese in ein Verzeichnis packen und mittels htaccess schützen. Das klappt ja an sich auch gut und zuverlässig, allerdings wird die Steuerung des Zugriffs bei vielen Usern/Gruppen und unterschiedliche Dateien schwierig und aufwendig.

Eine andere Idee ist nun, die Dateien in einem nicht vom Web aus zugänglichen Bereich zu speichern und über ein Skript aufzurufen. Die Berechtigungen werden dann nicht in der htaccess festgelegt, sondern in einer Datenbank. Dies wäre recht komfortable und relativ einfach zu realisieren.

Der Nachteil bei dieser Methode: Der Server wird recht stark belastet, da bei jedem Aufruf das Skript gestartet wird und der User quasi über das Skript die Datei erhält. Dies ist gerade bei Anwendungen ärgerlich, wo viele Vorschaugrafiken etc. geladen werden, da dann viele Prozesse auf dem Server gestartet werden.

Meine Frage ist nun, wie ihr eine solche Problematik lösen würdet. Würdet ihr den oben beschriebenen Weg über ein Skript machen, kostet es eventuell garnicht so viel Performace, wie ich befürchte oder gibt es gar noch einen anderen Weg, den ich nicht kenne?

Lieben Gruss

Peter

  1. Eine andere Idee ist nun, die Dateien in einem nicht vom Web aus zugänglichen Bereich zu speichern und über ein Skript aufzurufen. Die Berechtigungen werden dann nicht in der htaccess festgelegt, sondern in einer Datenbank. Dies wäre recht komfortable und relativ einfach zu realisieren.

    Dann mach das doch einfach über ein script...

    Der Nachteil bei dieser Methode: Der Server wird recht stark belastet.

    Ich denke nicht das der Server sooo stark belastet wird, aber dafür ist er wenn dann ja auch da ;)

  2. Hello,

    aussschlaggebend sollte doch sein, über welche Protikolle und Dienst das Dateisystem zugänglich sein soll.

    • ssh
    • http(s)
    • ftp
    • telnet
    • tbc...

    Grüße

    Tom

  3. Hallo Peter,

    du weisst schon, dass man den Webserver (in deinem
    Fall wird das wohl (.htaccess) Apache sein) mit
    Modulen erweitern kann? Und fuer deine Zwecke gibt
    es durchaus auch schon Module (mod_auth_mysql,
    mod_auth_pgsql, etc). Das Forum hier setzt
    uebrigens mod_auth_pgsql ein.

    Gruesse,
     CK

    --
    Beware Evildoers for my deed is done and every little damsel in distress will be shelted!
    1. Hoi CK,

      du weisst schon, dass man den Webserver (in deinem
      Fall wird das wohl (.htaccess) Apache sein) mit
      Modulen erweitern kann? Und fuer deine Zwecke gibt
      es durchaus auch schon Module (mod_auth_mysql,
      mod_auth_pgsql, etc). Das Forum hier setzt
      uebrigens mod_auth_pgsql ein.

      Ich interessiere mich am Rande auch ein wenig für diese Problematik.
      Nur ist es denn mit mod_auth_mysql bzw. dem anderen Modul mit vertretbarem Aufwand möglich, auch komplexe Zugriffststerungen zu verwirklichen?

      Ich meine z.B. sowas hier:

      In einem Verzeichnis liegen 3 unterschiedliche Dateien. Mir ist bekannt, dass ich mit htaccess jeder einzelnen Datei entsprechende Berechtigungen zuteilen kann. Nur wie ist es denn, wenn Datei A nur von einer Hand voll Usern gelesen werden darf, und Datei B nur von anderen Usern und Datei C von allen Usern?

      Damit würde die Sache mit mod_auth_mysql doch nicht mehr funktionieren, oder? Denn in der Datenbank stehen ja nur Username und Passwort (und ggf. Gruppe), aber nicht, auf welche Datei ein User explizit zugreifen darf. Um damit also eine Dateigenaue Zugriffssteuerung zu ermöglichen, müsste ich also entweder unterschiedliche Tabellen erstellen und dort die User eintragen, die auf Datei A zugreifen dürfen, eine weitere Tabelle für Datei B usw. und anschliessend in der htaccess eintragen, für welche Datei welche Tabelle gilt.

      Das ist extrem aufwendig. Schön wäre es, wenn ich nur eine Tabelle hätte, wo die Usernamen, die Passwörter und die Dateien stehen, auf die diese User zugreifen dürfen. Aber eine solche Lösung existiert wohl nicht, oder? Bzw. nur über den eventuell ressourcenfressenden Umweg, die Daten über ein Skript zu laden, wie Peter es schon angesprochen hat...

      Viele Grüße...

      Alex (spice) :)

      1. Hallo Alexander,

        Nur ist es denn mit mod_auth_mysql bzw. dem
        anderen Modul mit vertretbarem Aufwand möglich,
        auch komplexe Zugriffststerungen zu
        verwirklichen?

        [...]

        Nein, nicht in der Form. Aber wie gesagt. Ein
        Authentifizierungs-Modul zu schreiben, dass den
        Anspruechen genuegt, ist keine grosse Sache.

        Das ist extrem aufwendig. Schön wäre es, wenn
        ich nur eine Tabelle hätte, wo die Usernamen,
        die Passwörter und die Dateien stehen, auf die
        diese User zugreifen dürfen. Aber eine solche
        Lösung existiert wohl nicht, oder?

        Keine Ahnung ;) Such mal danach. Ansonsten: SELF
        ist der Mensch.

        Gruesse,
         CK

        --
        Das Sein entsteht aus dem Nicht-Sein.