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

时间:2020-03-06 14:34:46  来源:igfitidea点击:

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

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

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

@赫斯特:谢谢你的回答。我知道消息级别的加密/ WS-Security,并希望不必走这条路。我们有使用该服务的经典ASP客户端,这为我们带来了小小的痛苦。运行Web服务的站点上有SSL证书,但是我有点希望我可以阻止客户端修改soap扩展,因为它们具有具有一定"播放"能力的开发人员。

解决方案

我不确定扩展名和bin文件夹的含义(我想我们正在使用.NET),所以我无法回答它们是否正在加载等。

但是,请注意,SOAP旨在允许中介机构读取标头,甚至可以修改标头。 (搜索" SOAP Active Intermediaries")。从这一点来看,我希望没有理由通过阻止代码读取SOAP来避免监听。

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

用于实现消息级安全性机制的一种可用标准是WS-Security协议。这样,无论传输方式如何,都可以将加密目标对准有效负载和相关的标头。它更为复杂,但这就是限制访问的方式。

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

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

通过对机器的物理访问,所有赌注都关闭了。