You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elmah自定义ErrorLogModule配置未生效,敏感信息仍在异常邮件中

问题:Elmah自定义ErrorLogModule无法移除生产环境邮件中的敏感信息

背景

我接手了一个基于ASP.NET MVC开发的遗留内部站点,该站点使用Elmah发送未捕获异常的邮件,但邮件中包含密码等敏感信息。我实现了自定义ErrorLogModule类以移除错误报告中的敏感字段:

using Elmah;
using System.Linq;
using ElmahErrorLogModule = Elmah.ErrorLogModule;

namespace HRCommittee
{
    // 修改自现有方案实现
    public class ErrorLogModule : ElmahErrorLogModule
    {
        protected override void OnErrorSignaled(object sender, ErrorSignalEventArgs args)
        {
            string[] serverVariables = args.Context.Request.ServerVariables.AllKeys;
            string[] varsToRemove = { "AUTH_PASSWORD", "HTTP_COOKIE", "ALL_HTTP", "ALL_RAW" };

            if (serverVariables != null)
            {
                foreach (string var in varsToRemove)
                {
                    if (serverVariables.Contains(var))
                    {
                        args.Context.Request.ServerVariables.Remove(var);
                    }
                }
            }

            base.OnErrorSignaled(sender, args);
        }
    }
}

Web.config模块配置

站点的web.config中相关模块配置如下:

<system.webServer>
    <modules>
      <remove name="FormsAuthentication" />
      <!--<add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" preCondition="managedHandler" />-->
      <!--<add name="ErrorLog" type="HRCommittee.App_Start.ErrorLogModule" preCondition="managedHandler" />-->
      <add name="ErrorLog" type="HRCommittee.ErrorLogModule" preCondition="managedHandler" />
      <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" preCondition="managedHandler" />
      <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" preCondition="managedHandler" />
    </modules>
    <!-- other stuff -->
</system.webServer>

但邮件内容并未改变,且发现之前有人也做过相同尝试但未成功。由于Elmah文档匮乏,且我对微软技术栈较陌生,难以排查问题。我遗漏了什么?

更新:本地测试结果

我搭建了本地SMTP服务器,在本地运行站点并触发异常(代码与生产环境一致):

try
{
    throw new Exception("Test message");
}
catch (Exception e)
{
    AccountController.LogToElmah("Error Saving Form", e);
}

此情况下邮件已按预期脱敏,无论是否修改上述Web.config配置结果都一致。现在等待生产环境再次出现异常,但预期不会有变化,问题变得更复杂。

内容的提问来源于stack exchange,提问作者Scott Severance

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 09:13:25