如何处理日志记录敏感数据(HTTP授权)?

时间:2016-03-10 13:46:38

标签: java security logging log4j

假设我有一个使用HTTP Authorization标头的webservice。我对收到的标头运行了一些检查,如果它们没有通过,则该服务会返回错误。

但是,我有一点问题,因为我想记录出错的地方,但不想记录任何敏感信息 (即,如果标题'检查失败,那么知道收到的标题是有用的)。目前我正在做这样的事情:

@Override
public Response service( 
        HttpHeaders headers,
        ...) {


    if (!checkRequestHeaders(headers)) {
        getLog().warn("Invalid request headers: "
                + "request=" + ui.getAbsolutePath()
                + "headers=" + headers);
        return Response.status(Response.Status.BAD_REQUEST).build();
    }

我的第一个想法是从日志调用中删除 HTTP Authorization标头(虽然因为HttpHeaders是不可变的,所以代码会比我想要的更复杂)。

所以现在我想知道是否有更好的方法可以从日志中排除或混淆敏感信息,或者我是否过度思考这个问题。是否有共同商定的方式来做到这一点?在这种情况下你通常做什么?

0 个答案:

没有答案