문제

상당히 명백한 이유로, 나는 Elmah에 의해 auth_password를 제거하는 가장 좋은 방법을 식별하고 싶습니다. 그렇게하는 가장 좋은 방법은 무엇입니까?

도움이 되었습니까?

해결책

Elmah는 오픈 소스이므로 Error.cs 파일을 수정했습니다. Error.cs의 Error Cunstructor (약 126 줄) 내부에 다음을 추가했습니다.

_serverVariables.Remove(AUTH_PASSWORD);
//AUTH_PASSWORD = const string = "AUTH_PASSWORD" AND SET ELSEWHERE

다른 팁

Elmah 소스를 수정하지 않고이 작업을 수행했습니다. http://www.kipusoep.nl/2012/01/06/umbraco-elmah-with-sql-ce-4-0-authentication-part-2/

나는 방금 같은 것을 만났다. 다음을 사용하여 해결 :

using Elmah;
using ElmahErrorLogModule = Elmah.ErrorLogModule;

namespace XXXX
{
    public class ErrorLogModule : ElmahErrorLogModule
    {
        protected override void OnErrorSignaled(object sender, ErrorSignalEventArgs args)
        {
            // Remove password from the server variables being serialized
            args.Context.Request.ServerVariables.Remove("AUTH_PASSWORD");

            //TODO: remove session id, cookie too?

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

web.config, configuration.webserver/modules에서 errorlog 모듈을 업데이트했습니다.

<add name="ErrorLog" type="XXXX.ErrorLogModule" preCondition="managedHandler" />

이것은 두 번째 왕복없이 문제를 해결합니다. Elmah 소스가 사본을 가져가는 것처럼 들어오는 요청에서 암호를 사용하는 경우 문제가되지 않습니다.

나는 이것이 위의 반응에서 조금 늦었다는 것을 알고 있지만, 문제는 Elmah.mvc Nuget 패키지가 아닌 ASP의 현재 Elmah에서 수정 된 것으로 보인다.

컨텍스트가 준비되기 때문에 @dominic birch의 답변을 얻을 수 없었습니다. 대신, 나는 ErrorLog (나의 경우 MySqlerRorlog)에서 파생되어 거기에서 그것을했다.

public class FilteringMySqlErrorLog : MySqlErrorLog
{
    static readonly string[] _stripSearch = new[] { "password", "cardnumber", "ccnumber", "cvv" };

    public FilteringMySqlErrorLog(IDictionary config)
        : base(config)
    { }

    public override string Log(Error error)
    {
        error.ServerVariables.Remove("AUTH_PASSWORD");

        foreach (string key in error.Form.AllKeys.ToList())
        {
            if (_stripSearch.Any(x => key.IndexOf(x, StringComparison.InvariantCultureIgnoreCase) != -1))
                error.Form.Remove(key);
        }

        return base.Log(error);
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top