Hello,
ich speichere auf meinem Server Rechnungen im pdf-Format. Diese sollen Kunden später in Ihrem Account (solange sie eingeloggt sind) herunterladen können.
Andere Kunden (also mit anderer User_id) sollen ebenfalls nur ihre eigenen und keine fremden Rechnungen herunterladen dürfen.
Frage: Wie kann ich das realisierien, ohne für jeden User den Dateinamen mit kryptischen Zeichen zu versehen (damit andere User den Dateinamen nicht "erraten" können)?
Da gibt es unterschiedliche Vorgehensweisen.
Ich setze jetzt mal voraus, dass der Zugriff per HTTP oder HTTPS stattfindet.
Dann kann man die Files in einzelne Verzeichnisse sortieren und den Usern nur nach erfolgreicher Authentifikation Zugriff darauf gewähren. Das geht im Direktzugriff bei Apacheservern mittels "Basic Auth" oder "Digest Auth"
http://httpd.apache.org/docs/current/howto/auth.html
Wenn Du nicht auseinandersortieren willst, dann kannst Du auch über eine <Files>-Direktive oder <FilesMatch>-Diektive die Rechte für einzelne Files festlegen.
http://httpd.apache.org/docs/current/mod/core.html#files
http://httpd.apache.org/docs/current/mod/core.html#filesmatch
Alternativ kannst Du den Zugriff auch über Scripte regeln, also die Files nicht mehr direkt über HTTP/s ausliefern, sondern indirekt über ein Script, das vorher die Authentifizierung prüft.
Das gewählte Verfahren hängt unter anderem auch davon ab, ob Cookies benutzt werden dürfen, oder nur die Standardauthentifizierungen des Webservers.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg