2010-10-11 12 views

Odpowiedz

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

Wydaje czyste, zainteresowany, aby usłyszeć narodami poglądy na ten temat ... – Andrew

+4

BTW, to jest dokładnie to, co odbywa się domyślnie z plikami * .config –

1

To bardzo dobre pytanie.

Musi być kilka sposobów na zabezpieczenie. Mogę myśleć o tym, że - jeśli nie obsługujesz XML w witrynie - aby zmienić typ MIME XML zarejestrowany na stronie internetowej, tak aby nie był obsługiwany.

inne rozwiązania, które nie są bezpośrednio zabezpieczenia "hibernate.cfg.xml" plik

1) określa się konfigurację w web.config pomocą nHibernate Handler sekcji

2) Konfiguracja kod

3) Skonfiguruj NHibernate, aby odczytać plik z rozszerzeniem .config

0

Ustaw konfigurację NHibernate w web.config, w ten sposób nie będzie wyświetlany w przeglądarkach.

1

Może znajdować się w katalogu bin iw ten sposób jest chroniony, a jeśli zajdzie potrzeba jego modyfikacji, aplikacja automatycznie uruchomi się ponownie po zmianie w katalogu bin.

edit
może rzeczywiście chcesz/trzeba to zrobić, jeśli Twój kod NHibernate mieszka w osobnej klasy biblioteki tak, że nie chce się mieszać w jego konfiguracji z pliku web.config (lub app.config jeśli dzielą bibliotekę pomiędzy interfejsami)

+0

1+ dla wspomnieć bin – Aliostad

2

Twój hibernate.cfg.xml powinien być ustawiony na „Kopiuj do wyjścia katalogu: Kopiuj zawsze” Kiedy go zbudować to jest kopiowany do wydruku bezpośredniego. Jeśli opublikujesz swoją witrynę, będzie ona tylko w katalogu wyjściowym (bin), więc nikt nie będzie mógł uzyskać do niej dostępu.

+0

Wszelkie komentarze na ten temat? – Andrew

+2

Sprawdź: http://nhforge.org/wikis/howtonh/your-first-nhibernate-based-application.aspx 'Dodaj nowy plik xml do projektu FirstSolution i nazwij go hibernate.cfg.xml. Ustaw jego właściwość "Kopiuj na wyjście" na "Kopiuj zawsze". " Jeśli to zrobisz, to zostanie odczytany z folderu bin (i zabezpieczony przed dostępem). Nie ma powodu, by istniał gdziekolwiek indziej. – Alistair

0

Podczas publikowania swojej stronie internetowej, pierwszą rzeczą, jaką możesz zrobić, to usunąć „hibernate.cfg.xml” plik znajdujący się w folderze głównym, więc nie ma potrzeby, aby zabezpieczyć

+0

Ale potrzebna jest informacja o konfiguracji, aby złamać aplikację? – Andrew

+0

Podczas kompilacji aplikacji plik konfiguracyjny zostanie skopiowany do folderu bin, więc plik konfiguracyjny znajdujący się w folderze głównym jest teraz bezużyteczny, można go bezpiecznie usunąć. –

0

umieścić go w Folder App_Data. Folder App_Data jest specjalnym chronionym folderem w aplikacjach internetowych ASP.NET, do których nie można uzyskać dostępu z zewnątrz za pośrednictwem przeglądarki. Zwykle umieszczam tam wszystkie moje pliki konfiguracyjne (z wyjątkiem oczywiście web.config).

Powiązane problemy