如何防止SoapExtensions添加到我的Web服务应用程序中?

时间:2008-09-23 03:55:58

标签: web-services soap

似乎任何人都可以通过将简单的SoapExtension放入bin文件夹然后使用以下内容进行管道处理来监听传入/传出的.NET Web服务SOAP消息:

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

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

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

2 个答案:

答案 0 :(得分:2)

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

但是,请注意,SOAP旨在允许中介读取标头甚至修改它们。 (搜索“SOAP Active Intermediaries”)。 从这个角度来看,我预计没有理由通过阻止代码读取SOAP 来避免窥探技术。

保护自己的正确方法是使用“ 消息级安全性 ”。 (这与传输级安全性形成对比,例如SSL,它不能保护中间人)。 换句话说,在发送之前加密您自己的邮件。

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

答案 1 :(得分:0)

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

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

通过物理访问机器 - 所有投注均已关闭。