保障Web服务的安全性

8

我在我们的生产Web服务器上有一个带有几个Web方法的Web服务(ASMX)。 在另一个内部Web服务器(不公开)上,我有另一个将使用ASMX的公共Web方法的Web站点。 有哪些最佳方法可以保护Web服务,使只有内部Web服务器可以访问公开Web服务器上运行的Web服务?

10个回答

3

最简单的方法之一是在消息的soap头部传递凭据。因此,每个调用都会传递所需的信息来确定用户是否被授权。WSE使其中一些变得更加容易,但关于这个过程最简洁的描述可以在Rocky Lhotka的业务对象书中找到。我收到了出版商的很多书来审查,而这本书有最好的解释。


1

假设您没有使用WCF的选项,我建议使用WSE 3(Web Service Enhancements)。您可以在MS's site获取工具包/SDK。

为了限制访问仅限于内部机器(我认为您的问题是这样的),我会在IIS中设置一个单独的网站,并将其设置为仅响应您服务器的内部IP地址。


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

1

使用IIS的目录安全IP地址限制,并仅限于访问该内部Web服务器的IP地址。

如果您无法实现上述操作,并且无法在目录中设置用户名/密码,则使用WSE向服务添加用户名/密码,或者查看证书(如果您想要一些有趣的操作) grin


1
也许我理解有误,但如果这些 Web 方法只会被内部服务器使用,为什么要公开暴露它们呢?

实际上,我认为你的理解是正确的。这让我想知道为什么Web服务甚至通过端口转发暴露出来??? - leppie

1
一个简单的HTTP模块就可以工作了。只需将允许的IP/主机硬编码(或从配置中读取),然后拒绝所有其他请求即可。

1

如果只有内部服务器将访问asmx文件?您可以在IIS中设置它们,放置一些IP限制在网站上。在属性中,进入目录安全性,然后选择“IP地址和域名限制”。

此外,对于密码,WSE 3是新的首选,但我在Apress的书籍“Pro ASP.NET 2.0 in C# 2005”第34章中找到了一个简单的方法。(请注意,此书的新版本省略了此章节。)该部分是基于自定义票证的身份验证。


Books24x7和Safari订阅救了场:)我会看一下第34章。谢谢。 - Bullines

0

在这一刻,我想到的是在IIS上进行IP过滤。快速应用,应该可以在您的情况下起作用。


0

0

请注意白名单IP地址是可以被绕过的。不要误解,这是一个很好的想法,你应该一定要做到,但如果你的预算/资源允许,你可以扩展你的威胁模型。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接