Ankündigung

Einklappen
Keine Ankündigung bisher.

merkwürdige Idee - Dateiübergabe

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • merkwürdige Idee - Dateiübergabe

    -nach den Richtlinien sollte es vielleicht doch ins Anfängerforum, andererseits ist es nicht unbedingt eine häufige oder allgemeine Frage...-

    Hallo,
    ich hatte mir gerade ein Tutorial über Bilder-Copyright-Schutz mit php angeguckt, bei dem das Bild durch eine php-Datei ausgegeben wird, also der Benutzer nicht direkt auf das Bild zugreift.

    Nun bin ich gerade dabei, ein Login-System zu erstellen.
    -Nur htaccess kommt nicht infrage, sieht unschön aus, ist "zu einfach".
    -Nur php schützt nicht vor direktem Aufruf von Dateien.
    -htaccess-Authentifikation per php ist umständlich, "wacklig" und man hantiert mit zu vielen Datenlisten
    ...
    alles irgendwie unpraktisch.
    Nun kam ich auf die Idee, das Prinzip des Bilderschutzes auf Dateien anzuwenden, also der Benutzer hat selber keine Zugriffsrechte auf die geschützten Dateien, über ein php-Skript kann er - nach Authentfizierung - dann aber doch auf die Dateien zuweisen.

    Glaubt ihr, so etwas ist möglich?
    Wäre wirklich eine interessante Alternative bei all den nervigen Login-Methoden...

    Gute Nacht wünscht
    Jannik


  • #2
    die geschützen php-Dateien außerhalb des Document-Root
    oder
    per htacces das Verzeichnis mit den geschützten Dateien schützen (deny from all)

    Da sowieso alles über eine einzige Datei läuft (index.php) welche die geschützten Dateien
    je nach GET/POST-Parameter includet bist Du so auf der sicheren Seite.
    Eine if-else-Abfrage nimmt, ordentlich geschrieben eine Menge Platz weg. Platzsparend geht es mit einem ternären Operator.

    Kommentar


    • #3
      Das ist schon klar, aber es geht mir nicht (nur) um geschützte php-Dateien, sondern allgemein um Dateischutz, auch beispielsweise für ein zip-Archiv.
      Und da frage ich mich, ob es eine Möglichkeit gibt, den direkten Zugriff zu verweigern, stattdessen aber den indirekten Zugriff mit Hilfe von serverseitigen Code zu ermöglichen,
      konkret würde dies bedeuten, dass ich z.B. jbjhjm.com/getfile?archiv.zip eingebe, und mir das Script ermöglicht, (indirekt) auf z.B. die Datei jbjhjm.com/private/files/archiv.zip zuzugreifen, während ich die Datei direkt mit jbjhjm.com/private/files/archiv.zip nicht laden kann.
      Mit Bildern ist das möglich, da wird das Bild dann in eine Variable geladen, und dann (nach Authentifizierung) ausgegeben. Und da ist die Frage - gibts da für Dateien auch eine Lösung?

      Kommentar


      • #4
        Da gilt das selbe Prinzip. Du musst nur drauf achten welchen Header du sendet. Sonst werden Bilder zum Download angeboten statt angezeigt^^
        MfG

        Kommentar


        • #5
          Wenn du ein bisschen hier im Forum suchst dann findest du dieses Thema zig mal. Ist nichts neues, wird alle 2 Wochen mal angesprochen. Du kannst beliebige Daten durch ein PHP Skript schleusen und entsprechend dann Sessions checken oder sowas.

          Zum anderen selbst wenn es ein eine nicht allgemeine oder seltene Frage ist, die Foren beziehen sich immer noch auf DEIN Wissen.

          Themenmoderation:
          [?] Verschoben von PHP-Fortgeschrittene

          Kommentar


          • #6
            Zitat von Flor1an Beitrag anzeigen
            Wenn du ein bisschen hier im Forum suchst dann findest du dieses Thema zig mal. Ist nichts neues, wird alle 2 Wochen mal angesprochen. Du kannst beliebige Daten durch ein PHP Skript schleusen und entsprechend dann Sessions checken oder sowas.

            Zum anderen selbst wenn es ein eine nicht allgemeine oder seltene Frage ist, die Foren beziehen sich immer noch auf DEIN Wissen.

            Themenmoderation:
            [?] Verschoben von PHP-Fortgeschrittene
            Danke schön!
            Von eigentlich allen anderen Foren bin ich es halt gewohnt, dass im Anfängerforum die Standardfragen zum Synthax, Textverarbeitung etc. kommen, während speziellere Sachen dann halt ins Fortgeschrittenenforum bzw. sowas wie "Technikbereich" kommen.

            Und dann habe ich die Info erst gelesen, nachdem ich den Thread schon eröffnet habe. Schande über mich!


            Soviel dazu. Dann probier ichs mal, vielen Dank!

            Kommentar


            • #7
              Gibt jetzt leider doch ein Problem:
              exec/mimetype.php und die beiden Funktionen darunter finden den jeweils passenden Mimetyp. Funktioniert auch einwandfrei.
              Mit diesem Code (z.B. getfile.php?file=bild.jpg) hole ich die Datei.

              PHP-Code:
              <?php    
                  
              if(!isset($_GET['file'])) {
                      die(
              "No file defined");
                  } else {
                      
              $file "files/".$_GET['file'];
                  }  
                  if(!
              file_exists($file)) {
                      die(
              "File does not exist");
                  }
                      include(
              "exec/mimetype.php");
                      
              $filename basename($file); 
                      
              $mime MimeTypeGetter::get($file);
                      
              header("Content-Type: $mime"); 
                      include(
              $file);
              ?>
              Aber es funktioniert nicht richtig. Direkt beim include() scheint es Probleme zu geben, viele Dateien werden einfach nicht richtig eingebunden. Nur 2 von versuchten 6 funktionieren - sehr erstaunlich. Konnte keinen Zusammenhang von Format oder Größe finden, die funktionierenden Dateien gehören allerdings zu den kleineren Dateien. Die Rechte sind für alle gleich gesetzt.

              Hat irgendjemand eine Idee worans liegen könnte?

              lg Jannik

              Kommentar


              • #8
                Les einfach ein Tutorial dazu: Dateidownload realisieren

                Kommentar

                Lädt...
                X