title image


Smiley Re: Bilder in einem Verzeichnis vor ungewolltem Zugriff schützen
Das mit dem .htaccess ist schon der richtige Ansatz.



Bilder in einer DB speichern ist Müll, dafür ist jegliche DB nicht geeignet. Nein, die Lösung ist viel einfacher.



Du legst alle deine Bilder in ein Verzeichnis und dazu eine kleine .htaccess Datei mit folgendem Inhalt:

"deny from all"



Damit erreichst du, dass von außen keine Zugriffe auf deine Bilder möglich sind. Also einfach in die Browserzeile einfügen ist nicht.

Dann brauchst du eben noch ein kleines System, dass auf PHP basierend deine User (am bestem mit Hilfe von Sessions) einloggst und eben bei der Ausführung eines jeden Scriptes prüft, ob der User die erlaubnis hat, dieses Schript auszuführen.



Jetzt brauchst du nur noch ein Script, dem du die Bildparameter übergibst, und dass dann im Falle einer positiven Authentifizierung des Users, das entsprechende Bild aus dem Verzeichnis holt und durchreicht:



Ein Script könnte z.B. so aussehen:

1<?php2$path = "n_public/pcs/".$_GET["loc"];3$bild = $path;45// session starten67 session_start();8 $session = session_id();910//prüfen ob registriert1112 if((!($_SESSION["user"])) || ($_SESSION["valid"] != "true")){13 $bild = "picture_error.jpg";14 }else{1516// wenn registriert, datenbankabgleich1718 require 'n_public/db_connect.php';19 20//mysql-abfrage starten 2122 if (!($result = mysql_db_query($DB_DB_NAME, "SELECT session, ip FROM user WHERE form_name='".$_SESSION["use r"]."' "))) {23 $bild = "picture_error.jpg";}2425 $number = mysql_numrows($result);26 $row = mysql_fetch_array($result);2728 $ip = $_SERVER["REMOTE_ADDR"];2930// wenn es den user nicht gibt TSCHÜSS ...3132 if($number != "1"){33 $_SESSION["user"] = "none";34 $_SESSION["valid"] ="false";35 $bild = "picture_error.jpg";36 }3738// datenprüfung, wenn falsch, adios3940 if(($session != $row["session"]) || ($ip != $row["ip"])){41 $_SESSION["user"] = "none";42 $_SESSION["valid"] ="false";43 $bild = "picture_error.jpg";44 }45 46// alles gut gelaufen, schliessen 47 mysql_close($link);48}495051// Bild öffnen5253if(!(file_exists($bild))){54 $bild = "picture_error.jpg";55 $fp = fopen($bild, "r");56 header("Content-type: image/gif");57 header("Expires: 0");58 fpassthru($fp);59 fclose($fp);60 exit();61}else{6263$fp = fopen($bild, "r");64 $fp = fopen($bild, "r");65 header("Content-type: image/gif");66 fpassthru($fp);67 fclose($fp);68}6970?>71Powered by PHP Code Converter - © 2001-2003, faebu.ch



Grüße



geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: