Как защитить файл hibernate.cfg.xml? (Nhibernate)

Как защитить файл hibernate.cfg.xml? (Nhibernate). В настоящее время он находится на пути к веб-приложению и может просматриваться через браузер.

Ответ 1

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

Ответ 2

В вашем файле hibernate.cfg.xml должно быть указано "Копировать в выходной каталог: копировать всегда". Когда вы его создаете, оно копируется в прямой вывод. Если вы публикуете свой сайт, он будет только в вашем каталоге вывода (bin), чтобы никто не смог получить к нему доступ.

Ответ 3

Это очень хороший вопрос.

Должно быть несколько способов защитить его. Я могу думать о том, что если вы не используете XML на веб-сайте, чтобы изменить тип MIME XML, зарегистрированный на веб-сайте, чтобы он не обслуживался.

Другие решения, непосредственно не защищающие файл "hibernate.cfg.xml":

1) Определите конфигурацию в web.config с помощью обработчика раздела NHibernate

2) Настроить в коде

3) Установите NHibernate для чтения файла с расширением .config

Ответ 4

Он может жить в каталоге bin, и таким образом он защищен, а если вам нужно его изменить, ваше приложение будет автоматически перезагружаться по мере внесения изменений в каталог bin.

изменить
вы действительно захотите/должны сделать это, если ваш nhibernate-код живет в отдельной библиотеке классов, так что вы не хотите смешивать его конфигурацию с web.config(или app.config, если вы используете библиотеку между интерфейсами)

Ответ 5

Вставьте NHibernate config в web.config, таким образом, он не будет отображаться в браузерах.

Ответ 6

Когда вы публикуете свой сайт, первое, что вы делаете, - это удалить файл "hibernate.cfg.xml" , расположенный в корневой папке, поэтому нет необходимости его защищать

Ответ 7

Поместите его в папку App_Data. Папка App_Data представляет собой специальную защищенную папку в веб-приложениях ASP.NET, доступ к которой не может быть получен через браузер. Я, как правило, размещаю все свои файлы конфигурации (за исключением, конечно, web.config).