Ik heb deze vraag elders ook al gesteld, maar zonder reacties, dus hopelijk dat hier iemand op tweakers mij kan vertellen of dit de juiste manier is of niet.
Mijn webserver bevat een folder met bestanden, die door gebruikers van de website zijn geüpload (nog niet overigens, maar dat is de bedoeling zodra we live gaan). Ik wil voorkomen dat niet-geautoriseerde personen zomaar bestanden kunnen downloaden.
Wat ik zover heb gedaan:
Ik heb onderstaand .htaccess bestand toegevoegd aan de folder met bestanden om te voorkomen dat bestanden direct te benaderen zijn:
Maar ik moet nog wel in staat zijn een download link te genereren, waarmee de bestanden wel te downloaden zijn, dus ik heb onderstaande code getest:
En dat lijkt prima te werken! Gezien er iets van een ID of URL wel te zien is in de front-end en ik wil voorkomen dat men deze kan manipuleren, wil ik tenslotte nog Json webtoken toepassen zodat de URL niet aan te passen is (tenzij men beschikt over de privatekey die op de server is opgeslagen, bijna onmogelijk dus
)
Volgens mij is het nu wel volledig secure, maar ik zou toch graag een second opinion willen hebben. Wat denken jullie, safe? Of zie ik nog een groot veiligheidslek over het hoofd?
Mijn webserver bevat een folder met bestanden, die door gebruikers van de website zijn geüpload (nog niet overigens, maar dat is de bedoeling zodra we live gaan). Ik wil voorkomen dat niet-geautoriseerde personen zomaar bestanden kunnen downloaden.
Wat ik zover heb gedaan:
Ik heb onderstaand .htaccess bestand toegevoegd aan de folder met bestanden om te voorkomen dat bestanden direct te benaderen zijn:
code:
1
| Deny All |
Maar ik moet nog wel in staat zijn een download link te genereren, waarmee de bestanden wel te downloaden zijn, dus ik heb onderstaande code getest:
PHP:
1
2
3
4
5
| $file_url = '/uploadfolder/myfile.zip'; header('Content-Type: application/octet-stream'); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\""); readfile($file_url); |
En dat lijkt prima te werken! Gezien er iets van een ID of URL wel te zien is in de front-end en ik wil voorkomen dat men deze kan manipuleren, wil ik tenslotte nog Json webtoken toepassen zodat de URL niet aan te passen is (tenzij men beschikt over de privatekey die op de server is opgeslagen, bijna onmogelijk dus
Volgens mij is het nu wel volledig secure, maar ik zou toch graag een second opinion willen hebben. Wat denken jullie, safe? Of zie ik nog een groot veiligheidslek over het hoofd?