Как мне защитить мой файл "hibernate.cfg.xml"?(Nhibernate) - PullRequest
10 голосов
/ 11 октября 2010

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

Ответы [ 7 ]

6 голосов
/ 11 октября 2010
<configuration>
  <system.web>
    <httpHandlers>
      <add verb="*" path="hibernate.cfg.xml"
           type="System.Web.HttpForbiddenHandler"/>
    </httpHandlers>
  </system.web>
<configuration>
2 голосов
/ 12 октября 2010

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

1 голос
/ 11 октября 2010

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

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

1 голос
/ 11 октября 2010

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

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

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

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

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

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

0 голосов
/ 11 ноября 2010

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

0 голосов
/ 11 ноября 2010

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

0 голосов
/ 11 октября 2010

Поместите конфигурацию NHibernate в web.config, чтобы она не отображалась в браузерах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...