Bonsoir a tous,
Voila il ne s'agit pas a proprement parlé d'un problème mais plutôt d'une réflexion sur la sécurité en général des sites web utilisant la possibilité d'upload de fichier via des formulaires.
Je me demande en effet pourquoi dans 90% des cas les développeurs passent par la fonction php move_uploaded_file qui crée a mon sens une grosse faille sécuritaire dans la site plutôt que de passer par les fonction ftp de php.
En effet dans la majorité des cas que j'ai pu analyser, le développeur met le dossier upload en "777" puis utilise la fonction move_uploaded_file pour gérer l'upload des fichiers.
A ce niveau je trouve franchement la méthode pour le moins très peu sure, en effet il suffit ensuite que certaines scripts ou pages soient sensibles a une attaque d'injection de code ou autre et résultat les pirates ont un joli dossier ou ils peuvent stocker tout ce qu'ils veulent pour s'autoriser pas mal de dégâts dans le site.
Alors que s'ils passaient par les fonctions FTP, il n'y aurait plus besoin de mettre des dossier en "777" et dans ce cas la les sites seraient a mon avis un peu plus sécurisé a ce niveau du moins.
Cependant j'aimerais bien avoir vos avis pour voir si j'oublies quelques chose dans ma déduction ou si c'est simplement par simplicité que se genre de pratique se fait encore très régulièrement.
De plus ce problème est aussi bien présent si php fonctionne en mode "module php" ou en CGI, voir je dirais pire pour le mode CGI qui est en principe utilisé pour faire tourner php avec l'utilisateur propriétaire des pages php ce qui rend le site encore plus sensible a tout problème d'injection de code.
Alors qu'a priori en fonctionnant en module php, le php est exécuter avec l'utilisateur exécutant le serveur web, utilisateur qui en principe a très peu de droit et n'a justement aucun droit d'écriture sur les fichiers php du site.
J'espère que cette réflexion vous passionnera ou qu'a défaut si je fais fausse route certains pourront m'expliquer pourquoi et comment.
Vous souhaitant un bon week-end a tous et merci d'avance de vos réponses.
Partager