security verrouiller Comment sécuriser un dossier utilisé pour permettre aux utilisateurs de télécharger des fichiers?




proteger dossier mot de passe windows 10 (4)

J'ai un dossier dans mon serveur Web utilisé pour les utilisateurs de télécharger des photos en utilisant une page ASP.

Est-il assez sûr de donner des autorisations d'écriture IUSR au dossier? Dois-je sécuriser autre chose? J'ai peur que les pirates informatiques contournent la page ASP et téléchargent le contenu directement dans le dossier.

J'utilise ASP classic et IIS6 sur Windows 2003 Server. Le téléchargement est via HTTP, pas FTP.

Modifier: Changer la question pour plus de clarté et changer mes réponses en commentaires.


Vous devrez accorder des autorisations d'écriture, mais vous pouvez vérifier le type mime du fichier pour garantir une image. Vous pouvez utiliser FSO comme suit:

set fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.GetFile("upload.jpg")
'image mime types or image/jpeg or image/gif, so just check to see if "image" is instr
if instr(f.type, "image") = 0 then
   f.delete
end if
set f=nothing
set fs=nothing

En outre, la plupart des objets COM de téléchargement possèdent une propriété type que vous pouvez vérifier avant d'écrire le fichier.


Votre meilleur coup pour l'argent serait probablement d'utiliser un composant de téléchargement (j'ai utilisé ASPUpload) qui vous permet de télécharger / télécharger des fichiers à partir d'un dossier qui n'est pas accessible depuis le site Web.

Vous obtiendrez des hooks d'authentification et n'auriez pas à vous soucier de quelqu'un qui navigue dans le dossier et télécharge les fichiers (ou les télécharge dans votre cas), car les fichiers ne sont disponibles que via le composant.


Aussi, je recommande de ne pas laisser les utilisateurs télécharger dans un dossier qui est accessible depuis le web. Même la meilleure détection de type MIME peut échouer et vous ne voulez absolument pas que les utilisateurs téléchargent, par exemple, un exécutable déguisé en jpeg dans un cas où votre reniflement MIME échoue, mais celui dans IIS fonctionne correctement.

Dans le monde PHP, c'est encore pire, car un attaquant pourrait télécharger un script PHP malveillant et y accéder plus tard via le serveur web.

Toujours, toujours stocker les fichiers téléchargés dans un répertoire quelque part en dehors de la racine du document et y accéder via un script d'accès qui effectue une aseptisation supplémentaire (et au moins définit explicitement une image / quel que soit le type MIME.


Comment l'utilisateur téléchargera-t-il les photos? Si vous écrivez une page ASP pour accepter les fichiers téléchargés, seul l'utilisateur sur lequel IIS s'exécute aura besoin d'une autorisation en écriture sur le dossier, car IIS effectuera les E / S de fichier. Votre page ASP devrait vérifier la taille du fichier et avoir une certaine forme d'authentification pour empêcher les pirates de remplir votre disque dur.

Si vous configurez un serveur FTP ou une autre méthode de transfert de fichiers, la réponse sera spécifique à la méthode choisie.







windows-server-2003