Noschke: Login-Protokoll von mit .htaccess geschützten Seiten/Dateien

Hallo zusammen,

ich habe einen Pfad auf meinem Server mittels .htaccess geschützt, um bestimmten Benutzern Zugriff auf die dort hinterlegten Dateien zu gewähren. Nun würde es mich interessieren, welcher Benutzer wann auf welche dort abgelegte Datei zugegriffen hat.
Gibt es eine einfache Möglichkeit, ein solches Protokoll zu erstellen? Dabei interessiert mich jeder Zugriff auf eine Datei (z.B. PDF-Dokumente, aber auch HTML-Seiten), also nicht nur Datum und Uhrzeit des Logins. Ich stelle es mir in etwa so vor:

Benutzername#Datum-Uhrzeit#Dateiname

Das Protokoll kann als einfache Log-Datei (txt-Format) oder auch als Excel-Datei erstellt werden und sollte fortlaufend mit jedem neuen Abruf ergänzt werden.
Damit ich hierzu keine besonderen Rechte oder sonstigen Voraussetzungen vom Anbieter des Webspace benötige suche ich eine Lösung, die ohne eine Datenbank funktioniert.

Vielen Dank für die Ideen!
Grüße
Noschke

  1. Hello,

    Das Protokoll kann als einfache Log-Datei (txt-Format) oder auch als Excel-Datei erstellt werden und sollte fortlaufend mit jedem neuen Abruf ergänzt werden.
    Damit ich hierzu keine besonderen Rechte oder sonstigen Voraussetzungen vom Anbieter des Webspace benötige suche ich eine Lösung, die ohne eine Datenbank funktioniert.

    da könntest Du mal nachlesen, was unter
    http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#customlog
    zu finden ist. Dich interessiert wahrscheinlich das LogFormat
    http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats

    Baue es so auf, dass es z.B. mit der Funktion fgetcsv() von PHP oder einer vergleichbaren eines anderen Interpreters leicht zeilenweise zu lesen ist. Dann lässt es sich leichter auswerten.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hello,

      das habe ich eben noch vergessen:
      Loggen, welcher User wann auf welchen Inhalt zugegriffen hat, darfst Du nur, wenn die User zugestimmt haben. Andernfalls ist das ein Gesetzesverstoß.

      Nimm es also in die Bedingungen auf, dass ein zuordnungsfähiges Logging betrieben wird. Aber auch dann darfst Du damit nicht machen, was DU willst.

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. Moin!

        das habe ich eben noch vergessen:
        Loggen, welcher User wann auf welchen Inhalt zugegriffen hat, darfst Du nur, wenn die User zugestimmt haben. Andernfalls ist das ein Gesetzesverstoß.

        Gegen welches Gesetz genau?

        - Sven Rautenberg

        1. Hello,

          das habe ich eben noch vergessen:
          Loggen, welcher User wann auf welchen Inhalt zugegriffen hat, darfst Du nur, wenn die User zugestimmt haben. Andernfalls ist das ein Gesetzesverstoß.

          Gegen welches Gesetz genau?

          §4 DSG (und Ausführungsbestimmungen)

          http://bundesrecht.juris.de/bdsg_1990/index.html

          Das kann für narmale Menschen richtig teuer werden. Dagegen verstoßen dürfen mir die telekom, Daimler, Lidl, und wie sie alle heißen :-(

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
          Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
          1. Moin!

            »» > Loggen, welcher User wann auf welchen Inhalt zugegriffen hat, darfst Du nur, wenn die User zugestimmt haben. Andernfalls ist das ein Gesetzesverstoß.
            »»
            »» Gegen welches Gesetz genau?

            §4 DSG (und Ausführungsbestimmungen)

            http://bundesrecht.juris.de/bdsg_1990/index.html

            Da dürften sich die Juristen dann erstmal streiten, ob das Loggen des Zugriffs auf eine Datei, verbunden mit dem Anmeldenamen eines Accounts, als "personenbezogene Daten" gelten oder nicht. Denn entscheidend dürfte mindestens sein, ob man den Account einer natürlichen Person zuordnen kann, oder nicht.

            - Sven Rautenberg

    2. Hallo Tom,

      auch wenn ich zuerst ans normale Log gedacht habe, passen diese Anforderung

      » Damit ich hierzu keine besonderen Rechte oder sonstigen Voraussetzungen vom Anbieter des Webspace benötige suche ich eine Lösung, die ohne eine Datenbank funktioniert.

      und diese Angabe

      Context: server config, virtual host

      die ich

      da könntest Du mal nachlesen, was unter
      http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#customlog
      zu finden ist.

      genau da gefunden habe, zusammen?
      Wer noch nicht mal eine Datenbank hat, bekommt sicher in den seltensten Fällen ein derart modifiziertes benutzerspezifisches Log.

      Freundliche Grüße

      Vinzenz

      1. Hello,

        Wer noch nicht mal eine Datenbank hat, bekommt sicher in den seltensten Fällen ein derart

        modifiziertes benutzerspezifisches Log.

        Das kann nur der OP wissen, was er darf oder was sein Anbieter ihm für Geld einstellt.
        Jedenfalls ist es möglich, das geforderte Log zu erzeugen.

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
  2. hi,

    Benutzername#Datum-Uhrzeit#Dateiname

    Wenn Du was Eigenes bauen willst... nennen wir es "downloadmanager" und das kann nur ein CGI-Script sein.

    Wenn .htaccess greift, gibt es in der Server-Umgebung die Variable REMOTE_USER. Damit hättest Du schonmal den Benutzernamen. Datum-Uhrzeit bekommst Du vom System. Um an den Dateinamen zu kommen, müsste Dein "downloadmanager" die downloadbaren Dateien auflisten, beispielsweise als Links zum draufklicken. Verständlicherweise so, dass die Dateien selbst nicht per Web direkt erreichbar sind, sondern nur über das CGI "downloadmanager".

    Beim Draufklicken muss "downloadmanager" folgendes machen:

    • den richtigen Content-Type der Datei ausgeben
    • die Datei vom FS lesen und im binmode auf STDOUT schicken (geht zum Browser)
    • den Zugriff in eine eigene Logdatei schreiben

    Und daran denken, dass es race-Conditions geben kann, also den schreibenden Zugriff auf die LogDatei atomar handlen.

    Hotte

    --
    Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.