ilch Forum » Allgemein » HTML, PHP, SQL,... » Externen Zugriff auf Bilder verhindern

Geschlossen
  1. #1
    User Pic
    reb0r Mitglied
    Registriert seit
    22.01.2011
    Beiträge
    12
    Beitragswertungen
    0 Beitragspunkte
    Moinsen,

    bin leider durch die Suche nicht fündig geworden.
    Wir setzen ilch 1.1 O für eine geschlossene Community ein. D.h. jeder der sich anmeldet muss erst noch freigeschaltet werden bevor er auf den Inhalt zugreifen kann. Bis auf die Gallery funktioniert das auch ganz gut.

    Die Bilder der Gallery werden ja im Pfad /include/images/gallery abgelegt. Kennt man die Bezeichnung der Bilder ist nun möglich das Bild über den direkten Pfad aufzurufen ohne das man sich in dem Ilch-System angemeldet hat.

    Gibt es eine Möglichkeit eine Sperre, Redirect o.Ä. einzusetzen, so dass der Zugriff auf diese Bilder verwehrt wird, sofern man nicht im System angemeldet ist?

    Danke und Gruß,
    reb0r
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Ja man kann über .htaccess den Zugriff ein php Skript steuern lassen, hab das woanders schonmal allerdings nicht für die Gallery eingesetzt.
    <?php
    define ( 'main' , TRUE );
    session_name  ('sid');
    session_start ();
    
    if (isset($_SESSION['authright']) and $_SESSION['authright'] <= -1) {
    	function detect_mime($filename) {
    		$filetype=strrchr($filename, ".");
    
    		switch ($filetype) {
    			case ".jpeg": $mime="image/jpeg"; break;
    			case ".jpg": $mime="image/jpeg"; break;
    			case ".jpe": $mime="image/jpeg"; break;
    			case ".png": $mime="image/png"; break;
    			case ".gif": $mime="image/gif"; break;
    			case ".zip": $mime="application/zip"; break;
    			case ".ez":  $mime="application/andrew-inset"; break;
    			case ".hqx": $mime="application/mac-binhex40"; break;
    			case ".cpt": $mime="application/mac-compactpro"; break;
    			case ".doc": $mime="application/msword"; break;
    			case ".bin": $mime="application/octet-stream"; break;
    			case ".dms": $mime="application/octet-stream"; break;
    			case ".lha": $mime="application/octet-stream"; break;
    			case ".lzh": $mime="application/octet-stream"; break;
    			case ".exe": $mime="application/octet-stream"; break;
    			case ".class": $mime="application/octet-stream"; break;
    			case ".so":  $mime="application/octet-stream"; break;
    			case ".dll": $mime="application/octet-stream"; break;
    			case ".oda": $mime="application/oda"; break;
    			case ".pdf": $mime="application/pdf"; break;
    			case ".ai":  $mime="application/postscript"; break;
    			case ".eps": $mime="application/postscript"; break;
    			case ".ps":  $mime="application/postscript"; break;
    			case ".smi": $mime="application/smil"; break;
    			case ".smil": $mime="application/smil"; break;
    			case ".xls": $mime="application/vnd.ms-excel"; break;
    			case ".ppt": $mime="application/vnd.ms-powerpoint"; break;
    			case ".wbxml": $mime="application/vnd.wap.wbxml"; break;
    			case ".wmlc": $mime="application/vnd.wap.wmlc"; break;
    			case ".wmlsc": $mime="application/vnd.wap.wmlscriptc"; break;
    			case ".bcpio": $mime="application/x-bcpio"; break;
    			case ".vcd": $mime="application/x-cdlink"; break;
    			case ".pgn": $mime="application/x-chess-pgn"; break;
    			case ".cpio": $mime="application/x-cpio"; break;
    			case ".csh": $mime="application/x-csh"; break;
    			case ".dcr": $mime="application/x-director"; break;
    			case ".dir": $mime="application/x-director"; break;
    			case ".dxr": $mime="application/x-director"; break;
    			case ".dvi": $mime="application/x-dvi"; break;
    			case ".spl": $mime="application/x-futuresplash"; break;
    			case ".gtar": $mime="application/x-gtar"; break;
    			case ".hdf": $mime="application/x-hdf"; break;
    			case ".js":  $mime="application/x-javascript"; break;
    			case ".skp": $mime="application/x-koan"; break;
    			case ".skd": $mime="application/x-koan"; break;
    			case ".skt": $mime="application/x-koan"; break;
    			case ".skm": $mime="application/x-koan"; break;
    			case ".latex": $mime="application/x-latex"; break;
    			case ".nc":  $mime="application/x-netcdf"; break;
    			case ".cdf": $mime="application/x-netcdf"; break;
    			case ".sh":  $mime="application/x-sh"; break;
    			case ".shar": $mime="application/x-shar"; break;
    			case ".swf": $mime="application/x-shockwave-flash"; break;
    			case ".sit": $mime="application/x-stuffit"; break;
    			case ".sv4cpio": $mime="application/x-sv4cpio"; break;
    			case ".sv4crc": $mime="application/x-sv4crc"; break;
    			case ".tar": $mime="application/x-tar"; break;
    			case ".tcl": $mime="application/x-tcl"; break;
    			case ".tex": $mime="application/x-tex"; break;
    			case ".texinfo": $mime="application/x-texinfo"; break;
    			case ".texi": $mime="application/x-texinfo"; break;
    			case ".t":   $mime="application/x-troff"; break;
    			case ".tr":  $mime="application/x-troff"; break;
    			case ".roff": $mime="application/x-troff"; break;
    			case ".man": $mime="application/x-troff-man"; break;
    			case ".me":  $mime="application/x-troff-me"; break;
    			case ".ms":  $mime="application/x-troff-ms"; break;
    			case ".ustar": $mime="application/x-ustar"; break;
    			case ".src": $mime="application/x-wais-source"; break;
    			case ".xhtml": $mime="application/xhtml+xml"; break;
    			case ".xht": $mime="application/xhtml+xml"; break;
    			case ".zip": $mime="application/zip"; break;
    			case ".au":  $mime="audio/basic"; break;
    			case ".snd": $mime="audio/basic"; break;
    			case ".mid": $mime="audio/midi"; break;
    			case ".midi": $mime="audio/midi"; break;
    			case ".kar": $mime="audio/midi"; break;
    			case ".mpga": $mime="audio/mpeg"; break;
    			case ".mp2": $mime="audio/mpeg"; break;
    			case ".mp3": $mime="audio/mpeg"; break;
    			case ".aif": $mime="audio/x-aiff"; break;
    			case ".aiff": $mime="audio/x-aiff"; break;
    			case ".aifc": $mime="audio/x-aiff"; break;
    			case ".m3u": $mime="audio/x-mpegurl"; break;
    			case ".ram": $mime="audio/x-pn-realaudio"; break;
    			case ".rm":  $mime="audio/x-pn-realaudio"; break;
    			case ".rpm": $mime="audio/x-pn-realaudio-plugin"; break;
    			case ".ra":  $mime="audio/x-realaudio"; break;
    			case ".wav": $mime="audio/x-wav"; break;
    			case ".pdb": $mime="chemical/x-pdb"; break;
    			case ".xyz": $mime="chemical/x-xyz"; break;
    			case ".bmp": $mime="image/bmp"; break;
    			case ".ief": $mime="image/ief"; break;
    			case ".tiff": $mime="image/tiff"; break;
    			case ".tif": $mime="image/tiff"; break;
    			case ".djvu": $mime="image/vnd.djvu"; break;
    			case ".djv": $mime="image/vnd.djvu"; break;
    			case ".wbmp": $mime="image/vnd.wap.wbmp"; break;
    			case ".ras": $mime="image/x-cmu-raster"; break;
    			case ".pnm": $mime="image/x-portable-anymap"; break;
    			case ".pbm": $mime="image/x-portable-bitmap"; break;
    			case ".pgm": $mime="image/x-portable-graymap"; break;
    			case ".ppm": $mime="image/x-portable-pixmap"; break;
    			case ".rgb": $mime="image/x-rgb"; break;
    			case ".xbm": $mime="image/x-xbitmap"; break;
    			case ".xpm": $mime="image/x-xpixmap"; break;
    			case ".xwd": $mime="image/x-xwindowdump"; break;
    			case ".igs": $mime="model/iges"; break;
    			case ".iges": $mime="model/iges"; break;
    			case ".msh": $mime="model/mesh"; break;
    			case ".mesh": $mime="model/mesh"; break;
    			case ".silo": $mime="model/mesh"; break;
    			case ".wrl": $mime="model/vrml"; break;
    			case ".vrml": $mime="model/vrml"; break;
    			case ".css": $mime="text/css"; break;
    			case ".html": $mime="text/html"; break;
    			case ".htm": $mime="text/html"; break;
    			case ".asc": $mime="text/plain"; break;
    			case ".txt": $mime="text/plain"; break;
    			case ".rtx": $mime="text/richtext"; break;
    			case ".rtf": $mime="text/rtf"; break;
    			case ".sgml": $mime="text/sgml"; break;
    			case ".sgm": $mime="text/sgml"; break;
    			case ".tsv": $mime="text/tab-separated-values"; break;
    			case ".wml": $mime="text/vnd.wap.wml"; break;
    			case ".wmls": $mime="text/vnd.wap.wmlscript"; break;
    			case ".etx": $mime="text/x-setext"; break;
    			case ".xml": $mime="text/xml"; break;
    			case ".xsl": $mime="text/xml"; break;
    			case ".mpeg": $mime="video/mpeg"; break;
    			case ".mpg": $mime="video/mpeg"; break;
    			case ".mpe": $mime="video/mpeg"; break;
    			case ".qt":  $mime="video/quicktime"; break;
    			case ".mov": $mime="video/quicktime"; break;
    			case ".mxu": $mime="video/vnd.mpegurl"; break;
    			case ".avi": $mime="video/x-msvideo"; break;
    			case ".movie": $mime="video/x-sgi-movie"; break;
    			case ".asf": $mime="video/x-ms-asf"; break;
    			case ".asx": $mime="video/x-ms-asf"; break;
    			case ".wm":  $mime="video/x-ms-wm"; break;
    			case ".wmv": $mime="video/x-ms-wmv"; break;
    			case ".wvx": $mime="video/x-ms-wvx"; break;
    			case ".ice": $mime="x-conference/x-cooltalk"; break;
    		}
    
    		return $mime;
    	}
    
    	if (file_exists($_REQUEST['file'])) {
    		header('Content-Type: ' . detect_mime($_REQUEST['file']));
    		readfile($_REQUEST['file']);
    		exit;
    	}
    }
    header('HTTP/1.0 404 Not Found');


    RewriteEngine on
    RewriteRule check.php check.php [L]
    RewriteRule (.*) check.php?file=$1


    Beide Dateien in den include/images/gallery Ordner, sollte funktionieren.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    reb0r Mitglied
    Registriert seit
    22.01.2011
    Beiträge
    12
    Beitragswertungen
    0 Beitragspunkte
    Funktioniert super! Vielen Dank!
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten