Bonjour à tous,

Je développe actuellement un site qui permet l'upload de document via formulaire HTML.

Théoriquement on ne peut pas uploader de fichiers php. En effet je fais toute une série de vérifications et si le fichier uploadé s'avère être un fichier php, rien ne se passe.

Bien entendu après avoir uploadé les documents, les utilisateurs peuvent les télécharger via le site web.

J'aimerais renforcer encore un peu plus la sécurité.

Admettons qu'un individu arrive à uploader un fichier php : le_fichier_intrus.php.
Celui-ci se retrouve à l'endroit suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
http://site.com/documents/le_fichier_intrus.php
Je me dis qu'une bonne pratique de sécurité serait la suivante : même si l'utilisateur arrive à uploader un fichier php, il ne faut pas qu'il puisse y accéder.
S'il n'y accède pas, le script ne s'exécute pas, donc pas de risques.

J'ai donc pensé à mettre dans le fichier .htaccess à la racine du site la directive suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<Files ~ "[^index]\.php$">
Order Allow,Deny
Deny from All
</Files>
Sachant que lors de la navigation, l'utilisateur est toujours sur index.php. Cette règle ne gêne donc pas du tout la navigation.

Donc en dehors de index.php, l'utilisateur ne peut demander aucun .php.
S'il décide d'essayer d'accéder à son fichier en tappant http://site.com/documents/le_fichier_intrus.php, il obtient une interdiction.
Donc le script n'est pas exécuté.

J'ai l'impression que cette méthode assure une très bonne sécurité.
Y-a-t-il un inconvénient / une faille que je ne vois pas à utiliser une telle méthode ?