2010-10-11 4 views

Répondre

6
<configuration> 
    <system.web> 
    <httpHandlers> 
     <add verb="*" path="hibernate.cfg.xml" 
      type="System.Web.HttpForbiddenHandler"/> 
    </httpHandlers> 
    </system.web> 
<configuration> 
+0

Cela semble propre, intéressé d'entendre les opinions des gens sur ce ... – Andrew

+4

BTW, c'est exactement ce qui est fait par défaut avec les fichiers * .config –

1

C'est une très bonne question.

Il doit y avoir plusieurs façons de le sécuriser. À mon avis, si vous ne diffusez pas de code XML sur le site Web, vous pouvez modifier le type MIME du fichier XML enregistré sur le site Web afin qu'il ne soit pas diffusé.

D'autres solutions de fixation pas directement le fichier "hibernate.cfg.xml":

1) Définir la configuration en utilisant web.config gestionnaire de section NHibernate

2) Configuration du code

3) Configurer NHibernate pour lire un fichier avec l'extension .config

0

Mettez NHibernate config dans web.config, de cette façon il ne sera pas affiché dans les navigateurs.

1

Il pourrait vivre dans le répertoire bin et ainsi il est protégé ainsi que si si vous avez besoin de le modifier, votre application redémarrera automatiquement car une modification a été faite dans le répertoire bin.

modifier
vous pourriez effectivement vouloir/devoir faire si votre code NHibernate vit dans une bibliothèque de classes séparées de telle sorte que vous ne voulez pas mélanger sa configuration avec le web.config (ou app.config si le partage de la bibliothèque entre les interfaces)

+0

1+ pour mentionner bin – Aliostad

2

votre hibernate.cfg.xml doit être réglé sur « Copier répertoire de sortie: toujours copier » Lorsque vous construisez est copié dans votre sortie directe. Si vous publiez votre site, il ne sera que dans votre répertoire de sortie (bin), donc personne ne pourra y accéder.

+0

Des commentaires à ce sujet? – Andrew

+2

Découvrez: http://nhforge.org/wikis/howtonh/your-first-nhibernate-based-application.aspx 'Ajoutez un nouveau fichier xml au projet FirstSolution et appelez-le hibernate.cfg.xml. Définissez sa propriété "Copier en sortie" sur "Toujours copier". ' Si vous faites cela, il est lu dans votre dossier bin (et protégé contre l'accès). Il n'y a aucune raison pour qu'il existe ailleurs. – Alistair

0

Lorsque vous publiez votre site Web, la première chose que vous faites est de supprimer le « hibernate.cfg.xml » fichier situé dans le dossier racine, donc il n'y a pas besoin de le fixer

+0

Mais les informations de configuration sont nécessaires afin que cela brise l'application droite? – Andrew

+0

Lorsque vous générez votre application, le fichier de configuration sera copié dans le dossier bin, de sorte que le fichier de configuration situé dans le dossier racine est inutile maintenant, vous pouvez le supprimer en toute sécurité. –

0

Mettez dans votre Dossier App_Data. Le dossier App_Data est un dossier protégé spécial dans les applications Web ASP.NET qui ne peuvent pas être accessibles de l'extérieur via un navigateur. J'ai tendance à y mettre tous mes fichiers de configuration (sauf le web.config bien sûr).

Questions connexes