Bilder aus Gallery vor Usern schützen

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

  • Bilder aus Gallery vor Usern schützen

    Hallo,

    ich plane eine kleine Gallery für meine Seite zu programmieren.
    Nun stehe ich vor folgendem Problem...

    Da ich die Bilder in einem öffentlich erreichbarem Ordner anlegen wollte (www.seite.de/gallery/id), kann ja rein theoretisch jeder der die id kennt und durch probieren den Bildernamen errät die Bildern sehen. Oder sogar Suchmaschinen finden den Weg dahin.
    Wie stelle ich es am besten an das die Bilder privat bleiben?
    Den gesamten Bereich mit htaccess schützen will ich nicht.
    Die Bilder sollen bei dem User in seinem Bereich sichtbar sein.

    Ich steh da grad irgendwie auf dem Schlauch und erhoffe mir hier hilfreiche Tipps

    Gruß

    Carsten

  • #2
    Hallo,

    der htaccess-Schutz ist die einzige sinnvolle Lösung. Im User-Bereich kannst du ja dann ein spezielles Script unterbringen, welches die Bilder wiedergibt. Dabei greift PHP über das lokale Dateisystem zu und ist von der htaccess-Sperre nicht betroffen.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Wieder was gelernt.

      Danke Dir, werde es mir mal ansehen.

      Kommentar


      • #4
        Ich greif mal dieses Thema wieder auf, weil ich jetzt genau hier auf ein Problem stoße.
        Ich möchte auch meine Bilder mit htaccess absichern.

        Das habe ich auch getan und das funktioniert.

        Nun habe ich aber ein Script auf meiner Homepage (welches nicht in dem Verzeichnis liegt) das die Bilder anzeigen soll.
        Ganz normal über
        PHP-Code:
         echo "<img src='bilder/bild1.png'>"
        geht es nicht, dann will der browser von mir immer das Passwort

        Folgende Dateistruktur:
        Code:
        - /root
        - index.php
        - datei.php
        --- /bilder
        --- bild1.png
        --- bild2.png
        --- .htaccess
        --- .htpasswd
        In meiner .htaccess Datei steht folgendes:
        Code:
        AuthType Basic
        AuthName "Passwortschutz"
        require valid-user
        AuthUserFile /var/www/user1432/html/projekte/test/bilder/.htpasswd
        was habe ich falsch gemacht?
        Mess with the Besth, die like the rest!

        Kommentar


        • #5
          Hallo,

          Zitat von Besth Beitrag anzeigen
          Nun habe ich aber ein Script auf meiner Homepage (welches nicht in dem Verzeichnis liegt) das die Bilder anzeigen soll.
          Ganz normal über
          PHP-Code:
           echo "<img src='bilder/bild1.png'>"
          wo hast du dieses Script? Warum rufst du es nicht auf? Dazu musst du das src-Attribut des Bildes auf dieses Script legen, siehe Thread.

          Gruß,

          Amica
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            PHP-Code:
             echo "<img src='bilder/bild1.png'>"
            ist der Inhalt meiner index.php (Dateistruktur siehe oben)

            Ich rufe ganz normal die index.php im Browser auf.
            Das Bild wird aber ohne Passworteingabe nicht angezeigt.
            Mess with the Besth, die like the rest!

            Kommentar


            • #7
              Lies mal bitte diesen Thread.
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Vielen Dank, das hat mir sehr weitergeholfen.
                Ich habs jetzt (vereinfacht) so gelöst:
                aufgerufen wird die index.php im browser mit der entsprechenden id:

                index.php
                PHP-Code:
                <?php
                echo "<img src='bild.php?id=4'><br>";
                ?>
                bild.php
                PHP-Code:
                <?
                if ( isset($_GET['id']) ) {
                  $bild = $_GET['id'];
                  // weiterer code um das bild auszuwählen - prüfen ob der user eingeloggt ist usw
                  header("content-type: image/png");
                  readfile("bilder/bild".$bild.".png");
                }
                ?>
                somit kann man nicht direkt auf das bild zugreifen, weil dann der htaccess schutz greift
                mein bild.php script muss ich nun noch anpassen, dass nur eingeloggte user die bilder sehen können
                Mess with the Besth, die like the rest!

                Kommentar


                • #9
                  Blick über den Tellerrand: Das ganze .htaccess-Zeug braucht man nicht, wenn man die Dateien außerhalb des Webroot aufbewahrt.

                  Kommentar


                  • #10
                    Zitat von TobiaZ Beitrag anzeigen
                    Blick über den Tellerrand: Das ganze .htaccess-Zeug braucht man nicht, wenn man die Dateien außerhalb des Webroot aufbewahrt.
                    … was bei den meisten Hostern recht schwierig werden dürfte.
                    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                    Super, danke!
                    [/COLOR]

                    Kommentar


                    • #11
                      Zitat von TobiaZ Beitrag anzeigen
                      Blick über den Tellerrand: Das ganze .htaccess-Zeug braucht man nicht, wenn man die Dateien außerhalb des Webroot aufbewahrt.
                      Ach und da kommt man dann trotzdem mit readfile dran?
                      Das ist ja sehr interessant.
                      Schaffe ich es denn auch per Script hochgeladene Dateien außerhalb des webroot abzulegen? Das wäre ja dann ein Sicherheitsrisiko, oder nicht?
                      Mess with the Besth, die like the rest!

                      Kommentar


                      • #12
                        Ja, schaffst du. Das ist nicht riskanter, als es hochgeladene Dateien immer sind. Oder welche Befürchtung hast du dabei?

                        Kommentar


                        • #13
                          Ich greife das Thema noch einmal auf, weil ich nun ein Problem habe.

                          Bisher erstelle ich mir also das Bild wie oben beschrieben mit:
                          PHP-Code:
                          header("content-type: image/png");
                          readfile("bilder/bild".$bild.".png"); 
                          nun möchte ich in dem Bild gerne noch etwas ändern (zb Text hinzufügen)
                          Das würde man ja nun über die png image-funktionen von php realisieren - also in etwa so:
                          PHP-Code:
                          $string "test";
                          $im imagecreatefrompng("bilder/bild".$bild.".png");
                          $orange imagecolorallocate($im22021060);
                          $px = (imagesx($im) - 7.5 strlen($string)) / 2;
                          imagestring($im3$px9$string$orange);
                          imagepng($im);
                          imagedestroy($im); 
                          Leider bekomm ich hier immer Fehler das er mein Bild nicht lesen kann
                          Code:
                          Warning: imagecreatefrompng() [function.imagecreatefrompng]: 'bilder/bild1.png' is not a valid PNG file in pfad\zur\datei.php on line 33
                          Funktioniert dann die ganze Geschichte nicht mehr?
                          Wie kann man das Problem lösen?
                          Zuletzt geändert von Besth; 21.09.2011, 12:09.
                          Mess with the Besth, die like the rest!

                          Kommentar


                          • #14
                            Hallo,

                            offenbar stimmt der Pfad aber die Datei ist kaputt.

                            Wenn du eine halbwegs vernünftige Schrift haben willst, solltest du dir statt imagestring() mal imagettftext() ansehen.

                            Gruß,

                            Amica
                            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                            Super, danke!
                            [/COLOR]

                            Kommentar


                            • #15
                              Ich dachte erst es hat was mit dem htaccess zu tun ^^

                              Ich habe jetzt einfach mit Paint ein leeres png Bild erstellt und das dort hin gepackt - und siehe da es geht
                              Jetzt ist nur die Frage wieso das png von der Digital-Kamera defekt ist -.-

                              Danke für den Hinweis mit der Schrift - das schaue ich mir mal an
                              Mess with the Besth, die like the rest!

                              Kommentar

                              Lädt...
                              X