2010-08-28 25 views
5

Je réécris un site d'hébergement de fichiers, et je veux avoir la capacité d'héberger chaque type de fichier (au lieu de simplement avoir une liste complète d'extensions autorisées)."Bad" extensions de fichier qui devraient être évitées sur un site de téléchargement de fichiers?

J'exécute nginx et linux. Le site est construit en PHP. Je désactiverais le téléchargement de fichiers .php .... mais à part ça ... y at-il autre chose que je devrais surveiller?

+0

Vous voulez que le capacité d'héberger chaque type de fichier, mais interdire le téléchargement de fichiers '.php'? Voulez-vous vraiment empêcher l'exécution des fichiers '.php'? –

+0

Eh bien, fondamentalement. Je ne veux pas que quelque chose de malveillant soit exécuté par le serveur. –

+3

si le méchant peut en quelque sorte obtenir votre serveur pour exécuter un fichier téléchargé arbitraire - pensez-vous les nommer le fichier quelque chose d'autre que php va les arrêter? –

Répondre

5

Un maneer plus propre à résoudre le problème serait d'installer un sous-hôte (quelque chose comme files.somewhere.com) ou un répertoire, et l'exécution désactiver via un .htaccess (Les utilisateurs seront en mesure de télécharger script php, mais le serveur l'enverra au lieu de l'exécuter).

+0

Cela peut-il être fait dans nginx? –

1

La meilleure façon ici est une combinaison de:

  1. exécution Désactiver dans votre répertoire de transfert. Renommez tous les fichiers suspects: PHP, SH, BIN, etc. ou stockez tous les fichiers compressés dans des fichiers ZIP/TAR.
  2. Utilisez un antivirus (Dr. Web, ClamAV, etc.) sur le serveur et scannez les fichiers régulièrement.
4

Voici une liste des extensions que nous avons tendance à bloquer sur notre système de téléchargement de fichiers php. Tout d'abord, il vaut mieux enregistrer les fichiers dans un dossier non accessible de sorte que personne ne peut exécuter les fichiers téléchargés et faire un téléchargement forcé de chaque fichier, de sorte qu'il ne peut pas être ouvert non plus.

liste Extension: bat exe ​​ cmd sh php pl cgi dll com torrent js app pot PIF vb vbscript wsf asp cer rse jsp drv sys ade adp bas chm cpl crt csh fxp hlp hta inf ins isp jse htaccess htpasswd ksh LNK MDB mde mdt mdw msc msi msp mst ops pcd prg reg scr sct SHB shs url VBE vbs WSC wsf wsh

On y trouve aussi une expression régulière Javascript de ce qui précède:

/(\.|\/)(bat|exe|cmd|sh|php([0-9])?|pl|cgi|386|dll|com|torrent|js|app|jar|pif|vb|vbscript|wsf|asp|cer|csr|jsp|drv|sys|ade|adp|bas|chm|cpl|crt|csh|fxp|hlp|hta|inf|ins|isp|jse|htaccess|htpasswd|ksh|lnk|mdb|mde|mdt|mdw|msc|msi|msp|mst|ops|pcd|prg|reg|scr|sct|shb|shs|url|vbe|vbs|wsc|wsf|wsh)$/i 
+0

Ajouter php3, php4 et php5 aussi. –

+0

@JoshuaOtt ses rares personnes utilisent ces extensions, mais vous avez raison. Je vais mettre à jour – Neo