1

似乎任何人都可以窥探传入/传出的 .NET Web 服务 SOAP 消息,只需将一个简单的 SoapExtension 放入 bin 文件夹,然后使用以下命令进行检查:

<soapExtensionTypes>
  <add type="MyLoggingSoapExtension, SoapLoggingTools" priority="0" group="High" />
<soapExtensionTypes>

有没有办法阻止 SOAP 扩展加载或在我的应用程序中被询问(通过事件或某种此类机制)是否可以加载?

@Hurst:感谢您的回答。我了解消息级加密/WS-Security,并希望不必走那条路。我们有使用该服务的经典 ASP 客户端,这打开了一个痛苦的小世界。网站上有运行 Web 服务的 SSL 证书,但我有点希望我能阻止客户端修补肥皂扩展,因为他们有一些有能力“玩”的开发人员。

4

2 回答 2

2

我不确定您所说的扩展和 bin 文件夹是什么意思(我猜您使用的是 .NET),所以我无法回答它们正在加载等问题。

但是,请注意,SOAP 旨在允许中介读取标头,甚至可以修改它们。(搜索“SOAP Active Intermediaries”)。据此判断,我认为技术没有理由通过阻止代码读取 SOAP 来避免窥探

保护自己的正确方法是使用“消息级安全性”。(这与不保护中介的传输级安全性相反,例如 SSL)。换句话说,在发送之前加密您自己的消息。

用于实现消息级安全机制的一种可用标准是WS-Security协议。这使您可以将加密定位到有效负载和相关标头,而不管传输如何。它更复杂,但这就是您限制访问的方式。

于 2008-09-23T04:57:43.543 回答
0

完全同意@Hurst - 如果您想阻止其他人阅读您的消息,您需要使用消息级加密。否则,即使是简单的 NetMon 也可以破解有线流量。

当然,如果有人可以访问机器(给定对 /bin 等的访问权限),即使是密码学也可能不足以阻止窥探者使用调试器,例如在解密后读取内存中的消息表示。

物理访问机器 - 所有赌注都没有。

于 2008-09-23T05:05:52.870 回答