• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

direktaufruf für bilder sperren

beatles

Neues Mitglied
hallo zusammen

ich bin daran eine homepage zu erstellen. die homepage habe ich mit einem login versehen so, dass nur
berechtigte nutzer zugreiffen können.

auf einer zweiten seite habe ich dann eine foto gallery. das problem ist, dass man bilder über den direktzugriff (eingabe url) aufrufen kann. dies möchte ich gerne verhindern. also es sollen keine bilder angezeigt werden falls jemand www.xxxx.com/img/gallery/xxx.jpg aufruft.

ich habe dies mit einer .htaccess datei versucht was auch super funktioniert hat nur konnte dann meine gallery seite selber auch die bilder nicht mehr laden resp. darauf zugreiffen.

htaccess:

Code:
[COLOR=#444444][FONT=Times]<FilesMatch "^\.jpg" >[/FONT][/COLOR][COLOR=#444444]deny from all[/COLOR]
[COLOR=#444444][FONT=Times]</FilesMatch>[/FONT][/COLOR]

wie kriege ich das hin, dass bei normalem aufruf der seite, die bilder geladen werden aber bei einem direktaufruf via url, die bilder gesperrt sind???
 
Wie greifst du denn auf die Bilder zu? Wenn es über http:// läuft sollte es gesperrt sein, bei relativer Referenzierung zur Bilddatei sollte es gehen, tut es zumindest bei mir.
 
Vielleicht in der .htaccess den genauen Pfad angeben, zu dem Ordner, der die Bilder enthält? Könnte sein, dass die Galerie dann darauf trotzdem zugreifen kann......
 
also direkter aufruf im browser mit der url funktioniert eben und das möchte ich verhindern...

die gallery.php greift mittels php anweisung auf die ordner thumb und orig zu

HTML:
/* Configuration Start */
$thumb_directory = 'img/thumbs';$orig_directory = 'img/original';
$stage_width=600;	$stage_height=400;
/* Configuration end */

wenn ich die .htaccess einspiele ist ein direkter aufruf über die url nicht mehr möglich (was auch gewünscht ist) aber leider kann auch die gallery.php nicht mehr auf die bilder zugreiffen...
 
Bei festen ips sollte das kein Problem darstellen. Du musst dann die Direktive entsprechend ändern.

Pseudocode:
HTML:
<Directory /blabla>
Order Deny,Allow
Deny from all
Allow from ....
</Directory>

Genaueres steht in der Apache Doc.
 
Du kannst die Bilder per PHP auslesen.

img.php

PHP:
<?php
session_start();
header("Content-Type: image/png");
if(!isset($_SESSION['valid_user'])) {
    readfile("http://www.html.de/images/no_pic.png");
    die();
}
if(isset($_GET['img'])) {
    $img = $_GET['img'];
    readfile("http://www.html.de/images/$img.png"); 
} else {
    readfile("http://www.html.de/images/no_pic.png");
}

Im html Code dann so was

HTML:
<img src="img.php?img=bild" alt="image" />

und im BildOrdner dann folgendes als .htaccess

Code:
order deny,allow
deny from all

Dann hast du mit dem Browser keinen Zugriff mehr,
aber das Bild wird trotzdem angezeigt.

Falls die Session nicht gesetzt ist wird ein "Ersatzbild" dargestellt.

Dies ist nur ein sehr einfaches Beispiel, und dient nur zur Verdeutlichung.
Muss natuerlich noch entsprechend angepasst und abgesichert werden.

Bei jpgs brauchst du zB nen anderen header....
 
weiss einer, warum er mir als Pfad bei readfile(...)
"http://html.de..." vorangesetzt hat? oO
Das hab ich eigentlich nicht reinkopiert so...
 
Wenn einer deine Bilder will, dann bekommt er die, und wenn er einen Screenshot macht oder den Browser-Cache durchsucht. Viel wichtiger, als den direkten Aufruf zu unterbinden fände ich, dass jemand anders direkt auf seiner Seite auf deine Bilder mittels <img> verlinkt und die einbindet.
 
Zurück
Oben