2009-06-18 8 views
4

Disons que je suit dans un web.config:IIS ou autorisation ASP.NET - moyen le plus simple de sécuriser les fichiers statiques?

<allow roles="Developers" /> 
<deny users="*"/> 

Ce verrouille l'accès à .aspx, .asmx et d'autres types de fichiers .NET, mais il permet aussi aux utilisateurs non autorisés d'ouvrir des fichiers statiques comme image.jpg Je comprends pourquoi le web.config n'est pas demandé d'informations d'autorisation quand quelqu'un demande image.jpg (ce n'est pas un type .NET, et IIS peut le contourner), mais comment puis-je verrouiller une application entière?

conseils que j'ai trouvé en ligne comprend:

  • créer le répertoire en question et IIS/.NET ramasser une entrée <location>. (Il ne semble pas.)
  • vous devez écrire votre propre filtre ISAPI et mapper toutes les extensions de fichiers sensibles à cela.
  • vous n'avez pas besoin d'écrire votre propre filtre ISAPI - juste le mappage des extensions à aspnet_isapi.dll le fera.
  • vous n'avez pas besoin de modifier IIS, créez simplement une entrée httpHandler dans le fichier web.config pour vos extensions. (Je préfèrerais ne pas essayer de le faire pour toutes les extensions de l'application.)

Rien de tout cela ne fonctionne aussi facilement que je me souviens d'être dans Apache. Quelle est la chose la plus simple qui pourrait fonctionner pour demander un mot de passe à un visiteur et ne pas servir de fichiers (statiques ou non) à un utilisateur qui ne l'a pas?

Répondre

2

Activer wild card mapping for IIS 6. Cela enverra tous les fichiers via le pipeline ASP.NET, le formulaire de garantie auth se produit pour tous les fichiers. Il va dégrader les performances (ne sais pas combien).

Pour IIS 5, um, mise à niveau vers IIS 6.

Vous liste 4 idées:

  • emplacement ne fonctionne que si vous avez la cartographie de wild card (ou extensions spécifiques mises en correspondance).

  • Qui veut écrire un filtre isapi? Vous ne pouvez pas facilement le faire dans les langages gérés sauf si vous avez IIS7. Et qui veut écrire un filtre C++ isapi?

  • mapping wild card

    fonctionne avec la mise en garde ci-dessus (la performance)

  • Encore une fois, dernière option ne fonctionnera pas sans vous inscrire ces extensions spécifiques avec IIS et les acheminant par réSEAU.

+0

Un filtre ISAPI n'est pas très amusant, mais ce n'est pas si difficile et une fois que vous avez le code de base c'est incroyable combien d'autres choses vraiment utiles que vous trouvez à faire. C'est un showstopper si vous n'êtes pas autorisé à déployer une telle chose qui pour de nombreux développeurs web serait le cas. – AnthonyWJones

+1

Je ne suis pas convaincu. La première étape est encore l'apprentissage C++. Le mieux qu'un programmeur managé peut faire est de faire des appels natifs/dangereux vers C++, ce que je devrais encore écrire. – MatthewMartin

+0

c'est un bon lien vers scottgu - il a été éludé mon google mojo plus tôt aujourd'hui, mais c'est exactement la chose que je cherchais. Merci. – dnord

2

Une manière simple et agréable consiste à mettre à niveau vers IIS 7 - il a maintenant un pipeline intégré.

+0

+1 ce serait mon option préférée. – AnthonyWJones

Questions connexes