Apache/PHP: Verhindern eines Direktaufrufs von Bildern

  • Hi


    Ich habe da mal eine noch ungeklärte Frage: Wie kann ich verhindern, dass jemand eine JPG direkt öffnet (http://www.bla.ch/bla.jpg)?


    Ich arbeite eben mit Sessions und möchte nun einen Memberbereich für eines meiner Fotoalben erstellen. So wäre nur noch das Problem mit dem Direktaufruf (Wenn jemand irgendwie den genauen Pfad der Datei herausfindet).


    Das ganze läuft auf Apache. Vielleicht kann man ja auch da etwas ändern.


    Gruss und Danke für jeglich sinnvolle Antworten :)
    Biba

  • Mit einer ".htaccess" Datei kann man das regeln. Wie das allerdings mit der PHP Session korrespondieren soll, weiss ich auch nicht. Mach einfach einen Verzeichnisschutz. (auch mit htaccess)

    Karl Ranseier ist tot! Der wohl erfolgloseste Nachrichtensprecher aller Zeiten starb
    gestern im Alter von 76 Jahren bei dem Versuch die Wetterkarten neu zu mischen.
    Die Nachricht von seinem Tod erreichte ihn leider zu spät. Seine legendäre Rechenmaschine,
    mit dessen Hilfe er das Wetter der nächsten 5 Minuten voraussaugen konnte, ist ab
    sofort zu besichtigen.
    <<< Visit www.welcome.li >>>

  • Ich empfehle dir eine Kombination aus MySQL und PHP. Das heisst du erfasst die Benutzer die Zugang haben sollten in der DB und machst beim Login einfach ne Abfrage in der DB!


    Wenn du jedoch auf MySQL verzichten willste kannste das natürlich auch mit .htaccess regeln. Ich habs zwar noch nie versucht, aber du kannst den Benutzername und auch das Pwd mit PHP auslesen, somit würde ich sagen auch setzten. Hier findest du mehr zu diesem Thema:


    http://www.php.net/manual/de/features.http-auth.php


    edit: Mit der Variable $PHP_AUTH_USER kannst du den User auslesen und mit $PHP_AUTH_PW das Passwort.

    ... wir wären heute wohl technisch wesentlich weiter, wenn 3Dfx Interactive nicht hätte gehen müssen. Und wir wären wohl um einige recht geistesgestörte 3D-Beschleuniger bereichert worden.

    Einmal editiert, zuletzt von the_immortal ()

  • Karl Ranseier: Die Idee hatte ich auch schon, jedoch blieb das ganze im Sand stecken, da ich nirgends eine Kombination von Sessions und den htaccess-files fand...


    the_immortal: Genau das mach ich. User in DB erfasst und je nach Berechtigung kann er gewisse bilder anschaun, andere wiederum nicht. Doch ein Direktaufruf klappt natürlich bei jedem....


    hang: Mesi für den Link, werde das gleich mal durchlesen :)


    Gruss
    Biba

  • Zitat

    Original von Bibabutzemann
    Karl Ranseier: Die Idee hatte ich auch schon, jedoch blieb das ganze im Sand stecken, da ich nirgends eine Kombination von Sessions und den htaccess-files fand...


    Ich bin mir nicht ganz sicher aber die Benuzter und Passwort Variable sind glaube ich global gespeichert, dass heisst sie werden erst dann gelöscht wenn du das Explorerfenster schliesst, das heisst:


    Du kannst dich per htaccess einloggen und dann beliebig urls öffnen und Seiten loaden und die Variablen sind immer noch gespeichert und dafür würdest du eigentlich keine Sessions brauchen!


    Mann müsste es mal probieren :P



    PS: Und falls das nicht funktioniert kannst du die htaccess-Daten immer noch in ne Session speichern!

    ... wir wären heute wohl technisch wesentlich weiter, wenn 3Dfx Interactive nicht hätte gehen müssen. Und wir wären wohl um einige recht geistesgestörte 3D-Beschleuniger bereichert worden.

    Einmal editiert, zuletzt von the_immortal ()

  • *sry doublepost*

    ... wir wären heute wohl technisch wesentlich weiter, wenn 3Dfx Interactive nicht hätte gehen müssen. Und wir wären wohl um einige recht geistesgestörte 3D-Beschleuniger bereichert worden.

    2 Mal editiert, zuletzt von the_immortal ()

  • Zitat

    Original von hang
    ist das nicht einfach eine einfache einstellung im apache??
    ich glaub, ich hab mal was gesehen... is aber shcon lange her... könnte auch sein das ich mir das nur einbilde oder geträumt habe :)


    edit: google rulez: http://apache-server.com/tutorials/ATimage-theft.html


    Also... Des hier ist DIE Lösung! Thx.. Jedoch hab ich noch ein klenes Problem.


    Wenn ich mein ganzes document root für gif und jpg sperre, klappts wunderbar... jedoch wenn ich ein direcory erstelle (auf den ordner mit den bildern) und darin ja den FileMatch erstelle, klappt es nicht... menno... ich glaub ich mach irgendwas falsch.


    so siehts aus:

  • wenn du <Directory "/fotos/files"> nimmst, versteht apache das nicht als absoluten pfad?


    versuchs mal mit dem richtigen absoluten pfad


    <Directory "/var/www/kretz.li/public_html/fotos/files">


    nur mal so zum testen

  • ja aber sehr wahrschienlich nicht, wenn der pfad mit einem / anfängt... :)


    musst mal testen wies mit dem funktioniert:


    <Directory "fotos/files">
    <FilesMatch "\.(gif|jpg)">
    Order Allow,Deny
    Allow from env=local_ref
    </FilesMatch>
    </Directory>

  • ne so funktionierts auch nicht... wenn ich aber beim directory "\" angebe sollte sich ja das auf den ganzen var ordner auswirken.... tut es aber nicht. sondern nur auf kretz.li... saukomisch... sobald ich da einen ordner angebe geht nichts mehr (z.b. /fotos/, fotos/, /fotos, fotos)... hmmm...