Joachim: Zugriff auf Dateien nur der Webseite selbst erlauben

Beitrag lesen

Hi,

Sorry, da habe ich mich wohl unklar ausgedrückt. Dass es ein HTTP-Aufruf ist, ist klar - aber wieso ein "externer"?

wie die anderen gesagt haben, weils der Browser anfordert. Du könntest das Bild aber über php ausliefern, und nur den Referer Deiner Seite freischalten. Sieht etwa so aus:

$imgsrc         =  $_SERVER["PATH_INFO"];
    if (preg_match ("#..#", $imgsrc)) {  // keine uerlaubten Zeichen, hier ".."
        $imgsrc = false;
    }
// regex für freizuschaltende referers
elseif (!preg_match ("#(DEINEDOMAIN|DEINEANDEREDOMAIN|google)#i", $_SERVER["HTTP_REFERER"])) {
        $imgsrc = false;
    }

if ($imgsrc) {
        $imgsrc         =  $_SERVER["DOCUMENT_ROOT"] . "/DEIN_DIR/" . $imgsrc;
        $content_type   =  "image/jpeg";
    } else {
        $imgsrc         =  $_SERVER["DOCUMENT_ROOT"] . "/DEIN_DIR/unfein.png";
        $content_type   =  "image/png";
    }
    header("Content-Type: " . $content_type);
    header("Content-Length: " . filesize ($imgsrc));
    $cache = fopen($imgsrc, "rb");
    fpassthru($cache);
    exit;

Zum anzeigen des Bildes dann: .../img.php/DEINBILD.jpg

Gruesse, Joachim

--
Am Ende wird alles gut.