Vidéo: Créer un serveur de partage de fichiers sur un Raspberry Pi 2025
Il est assez fréquent que les applications Web permettent aux utilisateurs de télécharger des fichiers pour une raison ou une autre. Vous devez vous assurer que ces téléchargements sont sécurisés. Par exemple, certains forums permettent aux utilisateurs de télécharger de petites images ou avatars qui sont affichés à côté de chacun des messages de cet utilisateur. D'autres applications vous permettent de télécharger des fichiers de données pour analyse.
Vous pouvez utiliser la fonction intégrée fopen () de PHP, qui ouvre automatiquement un flux vers un fichier ou une URL permettant aux utilisateurs de télécharger des fichiers. Malheureusement, cette méthode est prête à être exploitée par des utilisateurs malveillants qui peuvent l'utiliser pour télécharger des fichiers depuis des serveurs distants sur votre serveur Web.
Empêcher ce type d'exploitation nécessite de désactiver deux paramètres dans php. ini: register_globals et url_fopen. La désactivation de ces paramètres empêche les utilisateurs d'utiliser le téléchargement de fichiers intégré de PHP sans activer explicitement cette fonctionnalité.
Après avoir désactivé ces deux fonctions dans php. ini, vous devez toujours autoriser les utilisateurs à télécharger des fichiers. Utilisez le jeu de fonctions FTP de PHP, une méthode beaucoup plus sécurisée que fopen (), pour permettre aux utilisateurs de télécharger des fichiers.
Vous pouvez utiliser les fonctions FTP assez intuitivement. Tout d'abord, vous établissez une connexion, puis vous téléchargez les fichiers dont vous avez besoin, et enfin, vous fermez la connexion. Voici comment utiliser les fonctions FTP en PHP:
Voici les fonctions FTP les plus courantes et leurs arguments:
-
ftp_connect (string $ host [int $ port [int $ timeout]]) : < Connectez-vous au serveur FTP - dans ce cas, votre serveur Web.
-
: Envoyer les identifiants de connexion au serveur FTP. ftp_put (ressource $ ftp_stream, chaîne $ remote_file, chaîne $ local_file, int $ mode [int $ startpos])
-
: Placer un fichier de la machine locale sur le serveur. ftp_get (ressource $ ftp_stream, chaîne $ local_file, chaîne $ remote_file, int $ mode [int $ resumepos])
-
: Récupère un fichier du serveur et envoie-le à une machine locale. ftp_close (ressource $ ftp_stream)
-
: Ferme la connexion au serveur. Vous devez fermer le flux FTP dès que vous en avez fini; Sinon, vous avez une connexion ouverte qui est vulnérable au piratage.
