[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Comment faire - set upload_tmp_dir to a non-world-readable directory




Mais, en attendant, sur le système debian, les droits sont de 1777 sur
les dossiers tmp /tmp et /var/tmp
À noter, le 1 de départ, le sticky bit, qui veut dire que tout le monde peut créer un fichier
mais que le fichier créé ne peut ensuite être modifié que par son proprio (`man chmod` pour le
détail).

Dès lors, pourquoi le dossier /upload_tmp_dir pour php ne serait t'il
pas lui aussi en 1777 ?
Tout le monde doit pouvoir écrire dans /tmp, c'est l'OS qui te met à dispo un endroit où tu
peux écrire, mais pour php y'a aucune raison que qqun d'autre que php puisse lire / écrire dans
un dossier qui lui est réservé.

En général on met ce dossier en 700 ou 750, en mettant en proprio le user qui fait tourner php
(ça dépend de ton installation de php).


Je vois, merci pour tes explications, ça semble logique.
Donc, dans mon cas, c'est www-data qui fait tourner PHP, avec Apache.

Dès lors, je crée mon dossier dans /var/www/dossier_pour_tmp_php
chown www-data:www-data -R /var/www/dossier_pour_tmp_php/

chmod 750 -R /var/www/dossier_pour_tmp_php

( Ou éventuellement 1750 ? )

ça semble être acceptable comme conf ? Mais, alors, qu'en est t'il si Joomla me crie une erreur rendant la page inaccessible ?
Je vais sur mon domaine, le site Joomla ne charge plus et affiche Error
Par contre, d'autres contenu sont accessibles ( domaine.ext/phpsecinfo/ )

Idem si je le met en 755.
Le site ne fonctionne que si je met les droits en 777

Après test, je me rend compte que je me trompe ! Le dossier temporaire était donné à root:root

Maintenant, il est bien donné à www-data:www-data en 750 et le site Joomla est accessible !


Par contre, depuis phpsecinfo j'ai toujours le message en orange, qui considère les conditions comme non réalisées :

Notice
upload_tmp_dir is disabled, or is set to a common world-writable directory. This typically allows other users on this server to access temporary copies of files uploaded via your PHP scripts. You should set upload_tmp_dir to a non-world-readable directory

Current Value: /var/www/dossier_pour_tmp_php (0750)
Recommended Value: A non-world readable/writable directory


Pour ça, si vous utilisez PHP et que vous pensez que votre configuration est fonctionnelle, merci de tester ce script, il suffit de le télécharger
https://github.com/ZerooCool/phpsecinfo/tree/phpsecinfo-zeroocool-v0.2.1

Le test est effectué ligne 71 :
https://github.com/ZerooCool/phpsecinfo/blob/phpsecinfo-zeroocool-v0.2.1/20070406-phpsecinfo-v0.2.1/PhpSecInfo/Test/Core/upload_tmp_dir.php

Merci de vos avis.


Reply to: