...

Sécurité du mod Upload Images

Démarré par alexetgus, 06 Décembre 2018 à 16:59:34

« précédent - suivant »

alexetgus

06 Décembre 2018 à 16:59:34 Dernière édition: 06 Décembre 2018 à 17:01:14 par alexetgus »
Salut tous,

Beaucoup de monde utilise le mod de Max, Uploads Images, qui est génial. :)
Cependant, il est possible de faire mieux en terme de sécurité.

Dans le mod d'origine, on trouve ceci dans le .htaccess du dossier uploads/ :

Code
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -ExecCGI -Indexes

C'est un début, mais ce n'est pas suffisant. Il faut prévoir toutes les extensions de fichiers, ce qui est très difficile !
Par exemple, un script .php3 passe comme une lettre à la poste.



Je propose une solution bien plus efficace et qui fonctionne avec tous les types de fichiers :

Code
SetHandler default-handler
ForceType application/octet-stream
Header set Content-Disposition attachment

<FilesMatch "\.(gif|jpe?g|png)$">
    ForceType none
    Header unset Content-Disposition
</FilesMatch>

Header always set X-Content-Type-Options nosniff

Qu'est-ce que ça veut dire ?
Ca veut dire que tous les fichiers qui ne sont pas des images seront forcés au téléchargement mais jamais exécutés !
C'est tout de même beaucoup plus sécuritaire.


Si jamais vous avez des fichiers autres que des images et que personnes ne doit pouvoir télécharger dans le dossier uploads/, c'est pas malin du tout, mais ça peut arriver.
A ce moment, il vous suffira de prévoir une "page de ban" et de mettre dans ce .htaccess ce qui suit :

Code
RewriteCond %{REQUEST_URI} !(\.jpe?g|\.gif|.png)$  [NC]
RewriteRule .* https://ban.chez-oim.org/?uploads   [L,END]

SetHandler default-handler
ForceType application/octet-stream
Header set Content-Disposition attachment

<FilesMatch "\.(gif|jpe?g|png)$">
    ForceType none
    Header unset Content-Disposition
</FilesMatch>

Header always set X-Content-Type-Options nosniff


Bien entendu, la redirection peut être différente. Elle peut être, par exemple :

Code
RewriteRule .* https://monforum.tld/interdit.php   [L,END]



J'espère que ce bout de code Apache va t'inspirer, Alain. ;)

Peut-être que ce post serait mieux en privé ? ???


maximus23

Bonjour,

Non toutes les solutions peuvent-être mises ici sans soucis tout le monde peut y participer :)

Je ne met plus rien de spécial dans le Htaccess à part le minimal vital car chaque mutualisé à ses propres règles et cela ne fonctionne pas de la même façon sur chaque serveur.

Cela m'a valu des centaines de messages donc je laisse le soin à chacun de sécuriser leurs fichiers aux mieux et un conseil peut toujours être demandé ici.

Sur certains serveurs même un bête -Indexes ne fonctionne même pas et met une erreur 500.

Donc c'est au cas par cas pas de soucis.

:)
Amitiés et à Bientôt.
Have a Nice Day.

alexetgus

Ouhlala !
Même si les .htaccess sont limités par les hébergeurs, il va y avoir des surprises chez certains... :o