Bonjour,
j'ai une petite question assez bête.
Je veux donner accès a des fichiers, alors j'ai mis un script qui permet de télécharger les fichiers.
Le script a comme clé dans l'url une chaine encodée en base64 qui contient un json avec le nom du fichier et un timestamp pour donner une durée max d'accès.
J'ai trafiqué la chaine encodée pour rajouter des caractères a des endroits aléatoires pour compliquer la vie d'une personne qui pourrait savoir décoder et j'encode a nouveau pour pas qu'on voit au premier abord mon bidouillage même si il passe inaperçu.
Ce qui fait que si on ne sait pas comment c'est trafiqué je suppose que c'est presque impossible a décoder.
La question que je me pose: comme c'est un script php basique trouvé sur le net, si quelqu'un arrive par hasard a trafiqué le lien et met des ../ est ce qu'il pourrait remonter dans les dossiers ? Comment je me protège est-ce que je dois manuellement vérifier si on essaye de sortir du dossier ou il y a une fonction qui sécurise cela ? Je me disais que j'aurais pu virer dans le path les ../ tout simplement et que ça pourrait suffire. Je me disais aussi que je pourrais aussi stocker les liens créés et autorisés si le lien a vraiment été créer par une personne qui a accès au serveur.
Merci pour votre aide.
Le code que j'ai trouvé sur le net:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $size = filesize($path_file); header("Content-Type: application/force-download; name=\"" . basename($file) . "\""); header("Content-Transfer-Encoding: binary"); header("Content-Length: $size"); header("Content-Disposition: attachment; filename=\"" . basename($file) . "\""); header("Expires: 0"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); readfile($path_file); exit();
Partager