Dot-Net
在 ASP.NET 網站中保護 Elmah
我在嘗試保護 ELMAH 時遇到了麻煩。我遵循了 Phil Haacked 的教程,唯一的區別是展示項目是一個 Web 應用程序,而我的項目是一個網站。
<add verb="POST,GET,HEAD" path="/admin/elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> <location path="admin"> <system.web> <authorization> <deny users="?"/> </authorization> </system.web> </location>使用前導“/”,我收到“找不到資源。”的響應,如果我刪除前導“/”,一切正常,除了可以通過在 /admin/elmah.axd 前面附加目錄名稱來繞過身份驗證.
例如沒有前導“/”
www.mysite.com/admin/elmah.axd - 觸發身份驗證
www.mysite.com/asdasdasd/admin/elmah.axd - 不觸發身份驗證並顯示 ELMAH
如何確保 ELMAH 安全,同時保持遠端查看日誌的能力?
謝謝。
其他人請注意:
按照艾倫的以下回答,結果如下。
www.mysite.com/admin/elmah.axd - 觸發身份驗證
www.mysite.com/admin/asdasdasd/elmah.axd - 觸發身份驗證
www.mysite.com/asdasdasd/admin/elmah.axd - 資源不能成立。(正是我們想要的)
我玩弄了 web.config 並得到了以下工作。基本上不是將 elmah.axd HttpHandler 放在一般的 system.web 中,而是將其專門添加到您的“管理員”路徑位置的 system.web 中。
<location path="admin"> <system.web> <httpHandlers> <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> </httpHandlers> <authorization> <deny users="?"/> </authorization> </system.web> </location>