【问题标题】:How do I prevent SoapExtensions being added to my web service app?如何防止将 SoapExtensions 添加到我的 Web 服务应用程序中?
【发布时间】:2010-09-12 06:03:20
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: web-services soap


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-23
        • 1970-01-01
        • 2012-02-27
        • 1970-01-01
        • 1970-01-01
        • 2012-07-26
        • 1970-01-01
        • 2012-12-12
        相关资源
        最近更新 更多