【发布时间】:2014-03-03 18:43:10
【问题描述】:
最近,一个安全团队询问我是否可以更改 WCF 服务中反序列化问题返回的消息。有问题的错误是他们截获了消息并传递了一个超出 Int32 范围的整数。
无法将值“2147483649”解析为“Int32”类型。
我的回答是反序列化过程发生在我的单行服务执行之前,这是不可能的。但是,有没有可能实现这个目标?
【问题讨论】:
标签: .net wcf deserialization soapfault
最近,一个安全团队询问我是否可以更改 WCF 服务中反序列化问题返回的消息。有问题的错误是他们截获了消息并传递了一个超出 Int32 范围的整数。
无法将值“2147483649”解析为“Int32”类型。
我的回答是反序列化过程发生在我的单行服务执行之前,这是不可能的。但是,有没有可能实现这个目标?
【问题讨论】:
标签: .net wcf deserialization soapfault
听起来你有includeExceptionDetailInFaults="true"。 True 是在进行生产部署之前应设置为 false 的默认值。一旦这是错误的,您将收到一般错误消息。这应该足以让安全感到高兴。
更好的选择是实现IErrorHandler。这是允许您处理异常的扩展点,即使它发生在执行到达您的服务代码之前。
【讨论】: