2009-03-19 15 views
2

Im travaillant avec asp.net 2.0, et j'ai un dossier dans mon chemin d'application ~/Data/avec quelques fichiers .mdb.Protéger le dossier des demandes externes

Je voudrais protéger ce dossier de demande externe comme http://www.whatever.com/Data/whatever.mdb

Mais je aurais besoin de donner une autorisation à ma demande, la cause im en utilisant OleDBConnections Agains le ~/Data/Chemin.

Quelle pourrait être la meilleure façon de protéger ce dossier?

Cordialement. Joséma.

Répondre

3

Dans le gestionnaire IIS et supprimez au moins l'accès anonyme sinon tous les accès. Votre code d'application peut continuer à utiliser son contenu, mais les requêtes HTTP ne peuvent pas y accéder.

2

Si possible dans votre situation, une autre option serait de placer les fichiers mdb en dehors du site Web. Par exemple, quelque chose comme cette structure de répertoires:

/MyProject

/Data 
     - whatever.mdb 
/www 
     - Default.aspx 

où www est la racine réelle de votre site Web. De cette façon, les utilisateurs ne pourront jamais accéder aux fichiers mdb à partir du navigateur, alors que vous pouvez toujours utiliser OleDBConnections avec les fichiers mdb. À ma connaissance, c'est assez sécurisé, et de cette façon, vous ne pouvez pas oublier accidentellement d'interdire l'accès dans IIS.

2

Avez-vous vérifié si c'est réellement un problème?

J'utilise ASP.NET 3.5 ici mais le dossier par défaut App_Data est blindé pour le téléchargement. Peut-être que vous devriez simplement suivre les directives et vérifier. En ce qui concerne les autres réponses sur le déplacement des données en dehors de votre dossier Web, cela ne fonctionnera généralement pas lorsque vous utilisez un fournisseur d'hébergement.

+0

+1 pour signaler que le dossier App_Data (que vous pouvez créer vous-même dans le projet) est protégé de cette manière par défaut. D'autres options sont de déposer un web.config dans le dossier avec un refus = "*" à l'endroit habituel. Certains fournisseurs d'hébergement vous donnera en effet une zone en dehors de votre site pour les données. –