Files
tilman.de/www/Metainformationen/Veraltet/getresource.php
T
2011-10-26 10:11:42 +02:00

51 lines
1.3 KiB
PHP

<?php
/*
* getresource.php wird an Stelle geschützter Resourcen in eine Seite
* eingebunden. Die Ressourcen liegen dafür in einem geschützten Verzeichnis,
* das über den Webserver nicht erreichbar ist.
* getresource.php öffnet die geschützte Datei lokal und "reicht sie durch";
* auf diese Weise hat der PHP-Code die Kontrolle über die Herausgabe.
* Damit getresource.php nicht von außen mit GET-Parametern gefüttert werden
* kann, überprüft es bei jedem Aufruf, ob der Nutzer die Berechtigung zum
* Öffnen der Datei hat.
*
* $_GET['item'] enthält den absoluten Pfad zur Resource.
* Dieser wird mit security.itemURL() generiert.
*/
@session_start();
include_once($_SERVER['DOCUMENT_ROOT'].'/daten/php/security.php');
if (isset($_GET['item'])) {
$item = $_GET['item'];
if (itemAccessible($item)) {
$fp = fopen($item, 'r');
// Content-type ermitteln
$imageInfo = getimagesize($item);
switch ($imageInfo[2]) {
case 1:
header('Content-type: image/gif');
break;
case 2:
header('Content-type: image/jpeg');
break;
case 3:
header('Content-type: image/png');
break;
case 4:
header('application/x-shockwave-flash');
break;
default:
header('Content-type: text/plain');
}
fpassthru($fp);
fclose($fp);
exit;
}
}
header('HTTP/1.0 403 Forbidden');
?>