0

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

而且我无法检查授权,因为我没有使用 ASP.NET Membership。

4

2 回答 2

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>
于 2013-10-25T12:58:26.010 回答
0

我发现最简单的选择是将 web.config 中的 elmah.axd 位更改为没有人会猜到的其他内容。例如 myerrors.axd (显然选择更晦涩的东西)。

那么只有你知道页面名称是什么才能查看错误....

于 2013-11-07T14:27:00.407 回答