Rolf B: Downloadlink funktioniert nicht

Beitrag lesen

Hallo Lukas,

ich kann Dir nur davon abraten, vom Benutzer eingegebene Zeichenketten als Dateiname auf deinem Server und in URLs zu verwenden. Besser ist es, den Dateinamen nur als beschreibendes Attribut zu verwenden und auf deinem Server generierte künstliche Dateinamen zu nutzen. Solche Namen dürfen nicht ratbar sein, d.h. eine fortlaufende Nummerierung ist falsch. Die Namen sollten lang sein (bspw. 64 Stellen) und müssen zufällig erscheinen. Du könntest beispielsweise ein Pfund Salz nehmen (einen beliebigen String, der mind. 64 Zeichen hat), den vom User gelieferten Namen anhängen, dann noch den aktuellen Timestamp und einen 384-bittigen Hash daraus machen. Dessen base64-Darstellung wäre dann 64 Zeichen lang.

Je nach Schutzstatus, den die JPGs haben, ist es aber generell ungeschickt, direkte Links in das Upload-Verzeichnis zu setzen. Wenn nämlich User A Zugriff auf 1.JPG haben soll, der User B aber nicht, dann wäre es doof, wenn User B nur dadurch, dass er zufällig den Namen errät oder ausspioniert, die Datei abrufen kann.

Wenn eh jeder alles sehen darf, ist die Lage entspannter.

Aber eigentlich sollte man den Download über ein zwischengeschaltetes PHP lösen, das prüft, ob der Abrufer diese Datei lesen darf und nur bei vorliegender Berechtigung die Datei in die HTTP Response kopiert. Dieses PHP kann dann auch die Datei-ID in den technischen Dateinamen auf deinem Server übersetzen.

Rolf

--
sumpsi - posui - obstruxi