J'ai développé une application web qui permet aux utilisateurs de télécharger des images et de les transformer pour ensuite les télécharger à nouveau transformées. J'ai évidemment dû donner à apache des permissions d'utilisateur sur le répertoire où les utilisateurs peuvent télécharger :
$ chown root:www-data uploadFolder
$ chmod 1775 uploadFolder
Ceci donne au groupe apache toutes les permissions, sauf celle de supprimer.
L'application crée un répertoire pour chaque session utilisateur à l'intérieur du répertoire uploadFolder
avec 0700
et enregistre les images de l'utilisateur à l'intérieur.
El uploadFolder
se trouve dans le répertoire de l'application.
Lorsque l'image est téléchargée, elle est servie directement (comme un lien) au client.
Un travail crontab exécute un script toutes les 20 minutes, qui vérifie quelles sessions sont actives et supprime tous les fichiers et dossiers à l'intérieur. uploadFolder
qui ne correspond à aucune session active.
Il fonctionne bien depuis deux mois, mais je ne suis pas sûr que cela puisse être dangereux pour mon application, ma base de données ou d'autres sites dans le même VPS.
Quelqu'un connaît-il le risque d'être permissif dans cette situation ?
Existe-t-il une alternative pour l'éviter ?
Voici la configuration de mon site apache :
<VirtualHost *:80>
ServerName www.itransformer.es
ServerAlias itransformer.es *.itransformer.es
DocumentRoot /siteFolder
<Directory /var/www/itransformer-2.0/web>
AllowOverride all
Options -Indexes
</Directory>
</VirtualHost>
Ajout de cet extrait de code à la configuration du site Apache : (cela devrait éviter de lire .htaccess
fichiers)
<Directory /uploadFolder>
AllowOverride none
Options -Indexes
</Directory>