Downloads mit sicherheitsstufe

Hallo,
so, das script funktioniert nun :smile:.

Ist ein Login script das verschiedenen usern die rechte gibt auf verschiedene seiten zu gelangen.

Nur wenn ich auf einer seite einen downloadlink habe dann hmmm dann kann die file ja jeder user downloaden egal ob er authorisiert ist auf die seite zu kommen. Man kann ihm den link ja schicken :frowning:.

Welche möglichkeiten sieht ihr?

Danke
Patrick

senden mit header

Hallo,
so, das script funktioniert nun :smile:.

grats

Nur wenn ich auf einer seite einen downloadlink habe dann hmmm
dann kann die file ja jeder user downloaden egal ob er
authorisiert ist auf die seite zu kommen. Man kann ihm den
link ja schicken :frowning:.

wenn man mit normalen Links arbeitet ja. Wenn Du mit headern arbeitest kann die Datei auch ausserhalb des Webroots liegen.
header(„File: $filename“); dürfte das sein (darf keine Ausgabe vorher stehen) und $filename muss auf die Datei zeigen…

Welche möglichkeiten sieht ihr?

also ich siehe nicht, sondern sehe :wink:

HTH
Munich

Zusatz
die Fileurl kann auch mit htaccess geschützt sein, wenn man die Dateien nicht ausserhalb des webroots ablegen kann.

Hallo,
so, das script funktioniert nun :smile:.

grats

Nur wenn ich auf einer seite einen downloadlink habe dann hmmm
dann kann die file ja jeder user downloaden egal ob er
authorisiert ist auf die seite zu kommen. Man kann ihm den
link ja schicken :frowning:.

wenn man mit normalen Links arbeitet ja. Wenn Du mit headern
arbeitest kann die Datei auch ausserhalb des Webroots liegen.
header(„File: $filename“); dürfte das sein (darf keine Ausgabe
vorher stehen) und $filename muss auf die Datei zeigen…

Ne, so nicht, das erzeugt nen 302 Redirect, der Browser bekommt die echte URL zu sehen, versucht diese zu laden und bringt eine schöne Fehlermeldung, wenn die Datei außerhalb des Webroot liegt.
Eher so:

Link: Bla

download.php:

<?php // User- Prüfung einfügen, falls nicht erfolgreich, 403 senden :wink:<br>
$download\_dir= "/pfad/zum/Verzeichnis"; // Außerhalb des Webroot oder 
 // per .htaccess geschützt
$file = str\_replace("\\/","", $\_GET["file"]);
if (!is\_file($download\_dir."/".$file)) {
 Header ("HTTP/1.0 404 Not Found");
 exit;
}
Header("Content-Type: application/octed-stream");
Header("Content-Length: ".filesize($download\_dir."/".$file));
header("Content-Disposition: attachment; filename=\"$file\"");
readfile($download\_dir."/".$file);
?\>

Gegebenfalls sind noch Basteleien mit dem Content-Type abhängig vom Dateityp erforderlich, wenn z.B. ZIPs/PDFs direkt geöffnet werden sollen.

Alexander

merci, ich probiers am WE mal aus.

byby
patrick