Securisé les upload sur mon site [Résolu]

Signaler
Messages postés
10
Date d'inscription
samedi 23 mai 2009
Statut
Membre
Dernière intervention
29 mars 2010
-
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
-
bonjour,
voila ma premier question sur le site je suis un débutant.
je suis entraine de faire un site qui propose au clients de "uploder" des fichiers et le mettre sur le site..ma question est comment être sur que un "client" va pas s'amusé a uplodee des fichier qui contient des virus ou des scripts qui peuvent effacé tout mon site par exemple??!!
vais vu une discusion faite sur ce sujet, le webmaster interdit certaines type de fichiers d'être uploder mais est-ce-que ça suffit pour empécher les virus et tuout ce qui est du genre?

y a t-il un système de scan de fichier par exemple que je peut mettre pour verifier que les fichiers sont clean ??
merci pour vos réponses

2 réponses

Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Salut,

«mais il suffit d'interdire l'upload de scripts PHP...»
Comme si seul php pouvais interagir avec le système … non, ce n'est pas suffisant. Rien qu'avec une install par défaut (par paquet debian) je vois les mods pour python et perl d'installés donc bon …

«ma question est comment être sur que un "client" va pas s'amusé a
uplodee des fichier qui contient des virus ou des scripts qui peuvent
effacé tout mon site par exemple?»
Tu peux déjà filtrer au niveau de l'extension du fichier (par exemple en utilisant strrchr() pour isoler l'extension). Au lieux d'avoir une liste noir d'extensions a interdire, fait toi plutôt une liste blanche de celles a autoriser, c'est bien plus sûr. Tu peux également faire un filtrage par type mime (cf fonctions Fileinfo), mais surtout garde le filtrage par extension :
 - apache (je suppose que tu utilises ce serveur) se base sur l'extension pour déterminer son comportement vis-a-vis des fichier (essaye de renommer un fichier .php en .txt, tu verras, il n'est plus interpretté).
 - un fichier .php dont le code php est intégré dans du html est considéré comme un document html du point de vue du type mime.
N'autoriser que les fichier dont l'extension est autorisée permet ainsi d'assez bien filtrer les fichiers, le filtrage par type mime est sympatique en complément de ce filtrage (mais bien entendu insufisant s'il est seul).

Après cette étape de filtrage, tu peux également prendre des dispositions pour réduire l'impact dans le cas où un fichier malicieux a été uploadé. Quelques idées :
 - Interdire l'accès direct au dossier où sont stockés les fichiers (cf conf de ton serveur) et permettre de télécharger le fichier via un scrit que tu auras fait.
 - chroot sur le serveur.
 - configurer le serveur afin que, dans le répertoire où se trouvent les fichiers uploadés, il n'exécute pas les cgi (normalement c'est par défaut), n'interprette pas les scripts etc.
 - chmod -x sur les fichiers uploadés (pas super utile).
 - etc
Messages postés
662
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
18 septembre 2009
1
Très vaste question...

des scripts malicieux, oui effectivement, ça pourrait exister, mais il suffit d'interdire l'upload de scripts PHP...
Pour le reste, si tu es propriétaire de ton serveur, avec accès root, rien ne t'empêche d'installer une collection d'anti-virus et autres et que ton script d'upload passe le sfichiers à l'antivirus avant validation...

Vu le nombre de situations possibles, à ma connaissance il n'existe pas de recette miracle.