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

Web services 如何防止将SoapExtensions添加到我的web服务应用程序?,web-services,soap,Web Services,Soap,似乎任何人都可以窥探传入/传出的.NET web服务SOAP消息,只需将一个简单的SoapExtension放入bin文件夹,然后使用以下方法将其导入: <soapExtensionTypes> <add type="MyLoggingSoapExtension, SoapLoggingTools" priority="0" group="High" /> <soapExtensionTypes> 有没有办法阻止SOAP扩展加载,或者在我的应用程序中

似乎任何人都可以窥探传入/传出的.NET web服务SOAP消息,只需将一个简单的SoapExtension放入bin文件夹,然后使用以下方法将其导入:

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

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


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

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

但是,请注意,SOAP的设计目的是允许中介体读取头,甚至修改头。(搜索“SOAP活动中介”)从这一点来看,我认为没有任何技术可以通过阻止代码读取SOAP来避免窥探

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


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

完全同意@Hurst的观点-如果你想阻止其他人阅读你的邮件,你需要使用邮件级加密。否则,即使是简单的NetMon也会破坏有线通信

当然,如果有人可以访问机器(允许访问/bin等),即使是加密技术也可能不足以防止窥探者使用调试器,例如解密后读取内存中的消息表示

通过物理访问机器-所有赌注均已取消