Jak zabezpieczyć Elmah.axd?
Używamy Elmah jako naszego systemu rejestrowania błędów dla aplikacji, która wkrótce wejdzie do produkcji. Jest to niezwykle przydatne, ale jeśli wejdzie do produkcji w ten sposób, każdy na świecie ma dostęp do dziennika błędów, ponieważ wszystko, co musi zrobić, to odwiedzić ourdomain.com/elmah.axd
.
We running an ASP.NET aplikacja MVC na IIS 6.
7 answers
Typowy scenariusz zabezpieczenia elmah.axd umożliwia dostęp tylko niektórym uwierzytelnionym użytkownikom. Ale jeśli Twoja witryna nie używa żadnego uwierzytelniania, może to nie mieć zastosowania.
Oto co wam polecam:
- Wyłącz całkowicie obsługę
elmah.axd
na głównej stronie - Skonfiguruj
elmah
, aby zapisywać logi do jakiegoś współdzielonego źródła danych (takiego jak udostępniony plik, baza danych SQLite lub nawet serwer SQL) - Konfiguracja drugiej strony w IIS, prawdopodobnie w innej sieci lub serwerze, który ma zainstalowaną tylko elmah i który wskazuje na to samo wspólne źródło danych. Teraz zawsze używasz drugiej strony do czytania dzienników. Oczywiście druga strona będzie dostępna tylko dla Ciebie.
Jeśli zdecydujesz się użyć SQL Server, możesz nawet odczytać logi wielu aplikacji uruchomionych na wielu serwerach WWW w gospodarstwie z poziomu jednej wewnętrznej aplikacji dostępnej tylko dla Ciebie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-11 11:36:43
Stwierdziłem, że jest to najbardziej dopuszczalne dla aplikacji MVC:
Http://www.beletsky.net/2011/03/integrating-elmah-to-aspnet-mvc-in.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-05 17:45:26
Możesz skierować obsługę http elmah na inny adres url (na przykład " Secure / elmah.axd") w sieci.config. Możesz zabezpieczyć adres url jak każdy inny asp.net strona w konfiguracji www.
<httpHandlers>
...
<add verb="POST,GET,HEAD" path="/Secure/elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
<location path="Secure" > <!-- secure the host.com/Secure path -->
<system.web>
<authorization>
<deny users="?" />
<!-- Or anything else... -->
</authorization>
</system.web>
</location>
Z powodzeniem stosujemy to podejście w IIS7, korzystając z dostawców usług Active directory i działa świetnie. Nie jestem jednak pewien, czy działa na IIS6.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-22 12:01:28
Jeśli używasz ASP.NET członkostwo, dość łatwo jest ograniczyć dostęp do elmah.axd HttpHandler dla anonimowych użytkowników i pozwala tylko zalogowanym użytkownikom w grupie "Administratorzy". Zrobiłem tak:
<configuration>
...
<location path="elmah.axd">
<system.web>
<authorization>
<allow roles="Administrators"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
</configuration>
Każdy, kto jest zalogowany i członek roli "Administratorzy", może teraz uzyskać dostęp do strony.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-25 06:02:58
Oto kilka przydatnych linków:
Bezpiecznie zaimplementuj ELMAH do rejestrowania błędów Plug And Play
Zabezpieczanie Stron Dziennika Błędów
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-11 10:45:46
Jeśli twoim zamiarem jest uniemożliwienie zdalnym użytkownikom dostępu do niego, po prostu zmień wartość <security allowRemoteAccess="yes" />
na <security allowRemoteAccess="no" />
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-13 16:06:21
Użyłem ograniczeń IP z konfiguracji IIS 7. Domyślnie nie można go po prostu zastosować w <location path="elmah.axd">
, ponieważ jest on zablokowany na poziomie konfiguracji nadrzędnej. W związku z tym utworzyłem pusty folder "logs"
i zastosowałem ograniczenia w IIS do tego folderu, a następnie zmodyfikowałem ścieżkę lokalizacji dla pliku elmah.axd
. To jest to! Masz zdalny dostęp do yourdomain.com/logs/elmah.axd
, ale tylko z określonych adresów IP.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-03 02:36:48