Geschützte Dateien / Dynamische Links?

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

  • Geschützte Dateien / Dynamische Links?

    Hiho!

    Mein erster Tag im Forum und deswegen gleich ein Sorry falls das ein Thema ist, dass man gaaanz einfach via 'Suchen' hier finden kann.
    Habs versucht, bin mir aber auch nicht ganz sicher was ich überhaupt suchen soll und ob das mit PHP zu lösen ist...
    Also erstmal, um was gehts?
    Ich will Dateien, Bilder und auch exe Dateien, vor nem direktem Aufruf schützen... so dass beim direkten Link ein Fehler kommt.
    Und dann mit PHP ein Login, wo dann eben die Dateien aufgerufen werden.
    Ich habe da halt was in Sinn wie bei den Web-Festplatten und Co, wo man beim Einloggen riesen Links bekommt in der jeweils die Session-ID mit drinne steht und wo der Link nach dem Ausloggen auch nich mehr funktioniert...
    Es soll eben nicht möglich sein eine Datei per direktem Link zu bekommen...
    Gibts doch sicher ne Lösung.
    Thx im Voraus...

    ((2b) || !(2b))
    Wenn etwas schiefgeht, weißt du nur, dass du eine ungerade Anzahl von Fehlern gemacht hast...

  • #2
    htaccess schutz aufs verzeichnis setzten.

    Kommentar


    • #3
      Hmm, ja ok... das hatte ich auch schon - ich will aber wenns geht mein eigenes Login Script... und nicht das Browsereigene, das doch recht bescheuert aussieht.
      Kann ich das mit htaccess realisieren, dass ich ein PHP Login aufrufe und DANN Zugriff auf das Verzeichnis habe, aber eben nur dann, wenn die Session noch existiert?

      ((2b) || !(2b))
      Wenn etwas schiefgeht, weißt du nur, dass du eine ungerade Anzahl von Fehlern gemacht hast...

      Kommentar


      • #4
        machst du dir ein normales loginscript (s. tuts) und dann eine Weiterleitung mit header() auf die entsprechenden Dateien...

        Kommentar


        • #5
          Sehe da gabs schonmal was...
          http://www.php-resource.de/forum/sho...s&pagenumber=2
          Gut, ok... also mit Weiterleitung á la http://name@pass
          Nun... aber auch da kann ich ja weiterhin die URL direkt aufrufen (wenn ich den name@pass direkt eingeb)
          Ne Möglichkeit wär ja noch name/pass dynamisch mit Session ID zu verknüpfen aber das muss ja in der htaccess stehen, die ja halt ganz und gar nich dynmisch is...

          Ah!
          Da is was!
          http://drweb.de/programmierung/php_bilderklau.shtml
          Das klingt doch mal vielversprechend... ma ausprobieren
          Zuletzt geändert von Lawless; 26.04.2003, 22:15.

          ((2b) || !(2b))
          Wenn etwas schiefgeht, weißt du nur, dass du eine ungerade Anzahl von Fehlern gemacht hast...

          Kommentar


          • #6
            aber wer kennt denn name@pass? die könnte man ja auch in dei box eingeben. aber benutzerdaten kennst nur du.

            sorry, statt header benutzt du fread();

            Kommentar


            • #7
              Bei fread bin ich noch nicht ganz durchgestiegen, aber ich denke ich hab ein Beispiel gefunden, dass ganz ähnlich funzt

              PHP-Code:
              <?php
               
              // Eigene Domain (ohne "www." oder dergleichen)
               
              $selfdomain "domain.de";
               
              // Verzeichnis der Bilder (kein Slash am Ende!)
               // Relativ zum Verzeichnis dieses PHP-Skriptes
               
              $imgdir "pics";


               
              $selfdomain strtoupper($selfdomain);
               
              $ref strtoupper($HTTP_REFERER);
               
              // protokoll entfernen
               
              $ref str_replace("HTTP://"""$ref);
               
              // domain extrahieren
               
              if (strpos($ref"/")) $ref substr($ref0strpos($ref"/"));
               if ((
              $ref=="") || (strpos($ref))   || (strpos($ref$selfdomain))) {
                 
              $fn $PATH_INFO;
                                  
                 if ((
              strpos($fn"../")) || (strpos($fn"..\\")))
                 {
                   echo 
              "Zugriffsverletzung"// Server schützen
                 
              } else readfile($imgdir.$fn); // Datei ausgeben
                                   
               
              } else {
                 echo 
              "Kein Zugriff";
               }
              ?>
              Und damit klappts sogar
              Auf dem Verzeichnis is jetzt ein htaccess Schutz und man kann die Bilder nur noch über dieses Script aufrufen - sehr schön!

              ((2b) || !(2b))
              Wenn etwas schiefgeht, weißt du nur, dass du eine ungerade Anzahl von Fehlern gemacht hast...

              Kommentar


              • #8
                wunderbar. wenn du das script (sofern es frei erhältlich war) evtl mit Quelle bei den Snippets posten würdest, wäre ich dir dankbar.

                Kommentar


                • #9
                  Den Code hab ich von hier
                  http://www.guweb.com/postcards/help/antileech.shtml

                  Hab inzwischen noch was gefunden - klein und effizient - hab leider den Link nicht mehr (irgendwo bei Google )
                  PHP-Code:
                  $type=explode(".",$_GET[file]);
                  header("Content-type: application/$type[1]");
                  header("Content-Disposition: attachment; filename=$_GET[file]");
                  readfile($_GET[file]);

                  // Aufruf in der Form datei.php?file=bild.jpg 
                  Durch den htaccess kann eben niemand auf die Dateien/Bilder zugreifen und auch wenn man DIESE Datei (mit dem Bild als Parameter angehängt) von 'draußen' aufruft/direkt eintippt, gehts nicht!
                  Es geht nur wenn man die Datei via

                  PHP-Code:
                  <html>
                  <
                  img src="pic.php?file=pics/bild.jpg">
                  </
                  html
                  aufruft.

                  Und genau das wollte ich

                  ((2b) || !(2b))
                  Wenn etwas schiefgeht, weißt du nur, dass du eine ungerade Anzahl von Fehlern gemacht hast...

                  Kommentar


                  • #10
                    ähm, wenn du mittels IMG-Tag an die Bilder kommst, sollte das aber auch mittels direktaufruf gehen, oder nicht?

                    Kommentar


                    • #11
                      das beispiel von guweb find ich ent gut, denn es gibt genug firewalls die den referrer einfach unterdruecken und bei der lieben norten firewall weiss ich net wo man das ausstellen kann .....

                      also koennte eine solche referrer abfrage dazu fuehern das leute die bilder gar net auf deiner page sehen ....


                      wenn du nen eigenen server hast mach es wie folgt :

                      pack die bilder ausserhalb des vom web erreichbaren verzeichnisses ...
                      schreib zu jedem bild ne nummer un nen link in die db ...
                      ruf das bild ueber ne funktion auf die sich die position holt und dann das bild

                      voilá ... die leute koennen das bild nciht mehr fremdlinken (es aber natuerlich noch bei sich speichern ....)

                      Kommentar


                      • #12
                        ach so, deswegen durch den img-tag. naja, hat iglo ja schon was zu geschrieben.

                        Kommentar


                        • #13
                          Das erste Beispiel hab ich auch nicht genommen... war in der Tat nicht so gut...
                          Aber das zweite (kurze) bezieht sich ja nicht auf den Referer - müsste also auch mit besagten Firewalls gehen.

                          Und zum 'direkten'Link... ich weiß nicht wie es woanders aussieht, bei mir isses so
                          Kann leider nicht in die htaccess reinsehen, da es kein eigener Space is.

                          Ich kanns nicht direkt aufrufen weil der htaccess Schutz da ist (kommt Forbidden)
                          Ruf ich den Link pic.php?file=bild.jpg auf kommt ein DL-Fenster dass aber nur eine komplett leere Datei abspeichert.
                          Erst wenn den Link in eine Datei setze, die auch meinen Server liegt, geht es...
                          Denke mal das liegt an der Config der htaccess, die ich halt leider nicht einsehen kann...

                          ((2b) || !(2b))
                          Wenn etwas schiefgeht, weißt du nur, dass du eine ungerade Anzahl von Fehlern gemacht hast...

                          Kommentar


                          • #14
                            Original geschrieben von Lawless
                            Ruf ich den Link pic.php?file=bild.jpg auf kommt ein DL-Fenster dass aber nur eine komplett leere Datei abspeichert.
                            Erst wenn den Link in eine Datei setze, die auch meinen Server liegt, geht es...
                            und genau dafür ist ebenfalls eine referer-abfrage erforderlich (denn anders liesse sich ja gar nicht unterscheiden, ob's jetzt ein direkter aufruf oder per <img>-tag ist) - also das selbe 'problem' auf das kaepteniglo beim ersten script hingewiesen hat.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              Hmm, schade, ich dachte das würde irgendwie Server-intern laufen...
                              Dabei funzt es doch so gut

                              ((2b) || !(2b))
                              Wenn etwas schiefgeht, weißt du nur, dass du eine ungerade Anzahl von Fehlern gemacht hast...

                              Kommentar

                              Lädt...
                              X