【问题标题】:Masking part of URL in jetty request log屏蔽码头请求日志中的部分 URL
【发布时间】:2013-03-08 16:47:15
【问题描述】:

我想在 Jetty 中记录所有 HTTP 请求,该请求有据可查,但我找不到任何资源,如何屏蔽某些参数。

例如:

json/users/detail?id=dsgrw543

应该记录为:

json/users/detail?id=********

或类似的。

主要动机是我可以提供这些日志进行分析,而不必担心我们用户的隐私可能会受到损害。最好是在线的,不使用批处理或其他脚本。

请注意,我使用其他身份验证机制(cookies/所有写入方法都是 POST/等)并且我无法更改现有 URL。

到目前为止,我唯一的想法是将其实现为 NCSARequestLog 之上的类: http://download.eclipse.org/jetty/stable-7/apidocs/org/eclipse/jetty/server/NCSARequestLog.html

有什么更好的方法?

【问题讨论】:

  • 您想完全消除查询字符串吗?或者只是掩盖价值?
  • 只是掩盖它的价值或消除那个论点。我想保留查询字符串。甚至只是扔掉一切之后?对我来说很好。

标签: security logging jetty jetty-8


【解决方案1】:

你可以像这样写一个简单的工具,在任何你登录的地方都可以使用它

    Enumeration<String> s = request.getParameterNames();
    String q = "";
    while(s.hasMoreElements()){
        q += s.nextElement() + "=***&";
    }
    String url = request.getServletPath()+(q.length()>0?"?"+q:"");

或者可能是request.getRequestedURI() 代替getServletPath

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-04
    • 1970-01-01
    • 2013-12-29
    • 2016-08-19
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多