WCF调试记录敏感信息

时间:2010-12-23 04:25:58

标签: c# wcf security logging

我正在研究在WCF中启用调试logging的安全隐患,特别是它可以/将记录哪些信息,以及是否有任何可以进行缓解的配置。

假设我们创建一个DataContract属性Password属于WCF操作的一部分,我需要知道在为请求启用日志记录时是否将以明文形式写出该属性响应以及任何层的服务异常是否会暴露任何此类。

其他注意事项可以通过SSL或消息加密来阻止此日志记录或任​​何特殊绑定配置,行为或挂钩用于拦截并可能清除日志。

原因是客户端需要写入磁盘的日志不包含其客户密码,因为公司中较不安全的人可能会读取它们。

由于

2 个答案:

答案 0 :(得分:1)

您必须区分MessageLogging和Tracing。您的敏感数据似乎是邮件数据的一部分。因此,当您打开消息日志记录时,您将在日志中以明文形式查看敏感数据。

另一方面,追踪更多是关于WCF基础设施事件。您的邮件内容不会记录在那里。

同样由WCF运行时引发的异常:它们永远不会包含任何消息数据。默认情况下,出于安全考虑,提交给客户端的异常绝不包含任何信息。在异常情况下,您必须明确包含要发送给客户端的数据。

我不确定如何拦截日志记录和跟踪,但WCF无论如何都是非常可扩展的,所以我敢打赌,有一个扩展点可以将TracingBehavior注入到框架中。

答案 1 :(得分:0)

我认为你应该为PII信息追踪创建一个自定义监听器 - 这是关于最佳practices的一篇好文章(部分:记录敏感信息) - 因为看起来你也在使用WebHost。我相信无论SSL如何,PII都会写入日志,但有办法防止未经授权的访问。