如果我不使用ASP.NET成员资格,如何保护elmah.axd

时间:2013-10-23 13:47:37

标签: asp.net security elmah

我在asp.net web表单项目中使用Elmah作为错误记录系统。 但是在elmah中,任何人都可以通过在URL中粘贴/elmah.axd来读取错误日志

我无法检查授权,因为我没有使用ASP.NET成员资格。

2 个答案:

答案 0 :(得分:1)

可以使用IP安全性(IIS7 +)将其锁定吗?

<location path="elmah.axd">
    <system.web>
      <httpHandlers>
        <add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
      </httpHandlers>
      <!--
        See http://code.google.com/p/elmah/wiki/SecuringErrorLogPages for 
        more information on using ASP.NET authorization securing ELMAH.
-->
    </system.web>
    <system.webServer>
      <security>
        <ipSecurity allowUnlisted="false" >
          <add ipAddress="127.0.0.1" allowed="true"/>
        </ipSecurity>
      </security>
      <handlers>
        <add name="ELMAH" verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" preCondition="integratedMode" />
      </handlers>
    </system.webServer>
  </location>

答案 1 :(得分:0)

我发现最简单的选择是将web.config中的elmah.axd位更改为其他人无法猜测的内容。例如myerrors.axd(显然选择了一些更模糊的东西)。

然后只有你知道页面名称才能查看错误....