Inital commit
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
<?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');
|
||||
?>
|
||||
Reference in New Issue
Block a user