保护Web服务

时间:2008-09-23 13:51:44

标签: asp.net web-services security

我的生产Web服务器上有一些Web服务(ASMX)和一些Web方法。在一个单独的内部Web服务器(未公开)上,我有另一个将使用ASMX的公共Web方法的Web站点。有哪些保护Web服务的最佳方法是,只有内部Web服务器才能访问在公开的Web服务器上运行的Web服务?

10 个答案:

答案 0 :(得分:3)

最简单的方法之一是在邮件的soap标头中传递凭据。因此,每个呼叫都会传递确定用户是否获得授权所需的信息。 WSE使其中的一些变得更容易,但是对于这个过程最简洁的描述之一可以在Rocky Lhotka的Business Objects一书中找到。我收到很多书籍供出版商审核,而且这个书籍有最好的解释

答案 1 :(得分:1)

假设您没有使用WCF的选项,我主张使用WSE 3(Web服务增强功能)。您可以在MS's site

获取工具包/ SDK

要限制只访问内部计算机(我认为您提出的问题),我会在IIS中设置一个单独的网站,并将其设置为仅响应服务器的内部IP地址。

答案 2 :(得分:1)

我会设置防火墙规则来限制对IP地址白名单的访问。

答案 3 :(得分:1)

使用IIS的directory security IP address restrictions,并限制对该内部Web服务器IP地址的访问。

如果您不能这样做,并且您无法在目录上设置用户名/密码,那么使用WSE并在服务中添加用户名/密码,或者如果您想要一些有趣的话,请查看证书笑容

答案 4 :(得分:1)

也许我没有正确理解,但是如果它们只是被内部服务器使用,为什么要公开公开网络方法?

答案 5 :(得分:1)

一个简单的HTTP模块可以工作。只需硬编码(或配置)允许的IP /主机并拒绝所有其他IP /。

答案 6 :(得分:1)

如果只是内部服务器将访问asmx文件?您可以在单独的网站或虚拟目录下在IIS中设置它们,然后在网站上放置一些IP限制。在属性中,转到目录安全性,然后“IP地址和域名限制。”

另外,对于密码,WSE 3是新的选择,但我确实在Apress的一本书中找到了一个名为“C#2005中的Pro ASP.NET 2.0”的第34章。(注意,较新版本的本书省略了本章。)该部分是基于票证的自定义验证。

答案 7 :(得分:0)

在这一刻,我想到的是IIS上的IP过滤。快速申请,应该适用于您的方案。

答案 8 :(得分:0)

使用客户端证书的TLS。请参阅Wikipedia entry开始使用。

答案 9 :(得分:0)

请注意there are ways around个白名单IP。不要误会我的意思,这是一个好主意,你应该做到这一点,但如果你的预算/资源允许,你可以扩展你的威胁模型。