假设我们有一个 WCF 服务,就像 msdn 示例中的那个——c#,calculatorservice,所有服务设置都是默认的。
如果我是一名黑客并且我知道calculatorservice 很重要,我想让它停止工作,我可以简单地破解服务引用的代码并创建一个我自己的应用程序来创建10 个客户端。这些客户端会时不时地在calculatorservice上调用一个随机(非终止)方法,以保持会话处于活动状态,并且永远不会关闭。
现在很明显,因为所有 10 个会话都被占用了(或者无论最大会话数是多少),没有人可以访问计算器服务,它被完全阻止了!
我们如何保护我们的服务免受这种影响?