假设我们有一个WCF服务,就像来自msdn examples的那样 - c#,calculatorservice,默认情况下所有的服务设置。
如果我是黑客,我知道计算器服务是重要的,我想让它停止工作,我可以简单地破解服务引用的代码并创建我自己的应用程序,创建10个客户端。这些客户端会立即调用计算器服务上的随机(非终止)方法,以使会话保持活动状态,并且永远不会关闭。
现在很明显,因为所有10个会话都被采用(或者无论最大会话数是多少),没有人可以访问计算器服务,它完全被阻止了!
我们如何才能保护我们的服务呢?
答案 0 :(得分:3)
如果您担心恶意黑客会通过虚假会话堵塞您的服务,那么请不要使用会话!使用“按来电”方式,并对您的用户进行身份验证,例如确保他们在您的Windows / AD域中,或者他们确实知道用户名/密码来打电话给您的服务。
如果恶意黑客为您的服务获得有效的用户名/密码组合,那么您无法阻止他不断向您发送10或20个并发请求并堵塞您的服务 - 至少不是在WCF服务级别。 WCF提供服务限制行为,以防止1 000多个恶意并发调用,以保护您的服务器免受洪水和崩溃。
如果您需要远离特定的IP或IP范围,您必须在之前的路由器/防火墙中接近--WCF服务无法真正帮助您。
答案 1 :(得分:1)
最好的办法是secure your WCF service:
在本文中,我将向您展示如何 您可以在WCF上实现安全性 服务。有很多选择和 实现的可扩展性点 WCF中的安全性。你也可以使用 特定产品,例如Windows 2003服务器授权管理器, 与WCF一起实施 a。的授权要求 解。 开箱即用,WCF支持 Windows凭据,用户名令牌 和X.509数字证书 安全凭证。