• [^] # Re: Droits

    Posté par (site web personnel, Mastodon) . En réponse au message [RESOLU] (WP) Le fichier n'a pas pu être déplacé vers wp-content/uploads/2016/04/. Évalué à 2. Dernière modification le 26 avril 2016 à 10:21.

    encore une PHPerie... clairement laisser écrire une appli web en dehors de /var/www/ est un trou de sécurité béant pouvant faire tomber le serveur : il suffirait de remplir /tmp pour empêcher d'autres applis de fonctionner correctement ; il faudrait dans ce cas un répertoire /var/www/tmp ou /var/www/adrv tmp permettant de confiner les dégâts (et gérer les droits, notamment éviter de l'exposer sur le réseau/Internet).

    Pour sa défense, Wordpress fait ce qu'il peut avant de se comporter comme une brute : dans wp-includes/functions.php, ligne 1725, il y a une fonction nommée « get_temp_dir() ». Elle essaie d'abord de retourner la valeur de sys_get_temp_dir(), puis la valeur de upload_tmp_dir, ensuite la valeur de WP_CONTENT_DIR avant de s'abandonner à tenter sa chance dans /tmp.

    D'ailleurs en écrivant ceci, je me rend compte je n'avais pas tenté ma chance en activant upload_tmp_dir (qui doit, bien entendu, être accessible en écriture et, le cas échéant, être déclaré dans open_basedir). Bien entendu, ce répertoire n'est pas accessible via le serveur web.

    La morale de cette histoire, c'est que confiner une application PHP, ce n'est pas de tout repos et clairement pas paramétré par défaut.