【问题标题】:How To Make WCF Sessions More Secure?如何使 WCF 会话更安全?
【发布时间】:2009-12-04 16:36:12
【问题描述】:

假设我们有一个 WCF 服务,就像 msdn 示例中的那个 - c#、calculatorservice,所有服务设置都是默认的。

如果我是一名黑客并且我知道calculatorservice 很重要,我想让它停止工作,我可以简单地破解服务引用的代码并创建一个我自己的应用程序来创建10 个客户端。这些客户端会时不时地在calculatorservice 上调用一个随机(非终止)方法,以保持会话处于活动状态,并且永远不会关闭。

现在很明显,由于所有 10 个会话都被占用(或任何最大会话数),没有人可以访问计算器服务,它被完全阻止了!

我们如何保护我们的服务免受这种影响?

【问题讨论】:

  • 对不起,我希望有一个软件解决方案:/

标签: c# wcf service security protection


【解决方案1】:

如果您担心恶意黑客会用虚假会话阻塞您的服务,那么请不要使用会话!使用“每次调用”方法,并验证您的用户,例如确保他们在您的 Windows/AD 域中,或者他们确实知道用户名/密码来调用您的服务。

如果恶意黑客为您的服务获取有效的用户名/密码组合,那么您无法阻止他不断向您发送 10 或 20 个并发请求并阻塞您的服务 - 至少不会在 WCF 服务级别。 WCF 提供 服务限制 行为来防止 1'000 次恶意并发调用,从而保护您的服务器不被淹没和崩溃。

如果您需要避开特定的 IP 或 IP 范围,您必须更早地解决这个问题 - 在您的路由器/防火墙中 - WCF 服务无法真正帮助您。

【讨论】:

  • 谢谢,正如你所说,这应该可以在路由器/防火墙级别解决——限制一个 IP 允许的连接数。
【解决方案2】:

最好的办法是secure your WCF service:

在本文中,我将向您展示如何 您可以在 WCF 上实现安全性 服务。有很多选择和 实现的扩展点 WCF 中的安全性。你也可以使用 特定产品,例如 Windows 2003 服务器授权经理, 与 WCF 一起实施 授权要求 解决方案。 开箱即用,WCF 支持 Windows 凭据、用户名令牌 和 X.509 数字证书作为 安全凭证。

【讨论】:

  • 谢谢,但这似乎对我描述的情况没有帮助。我的服务已经有默认的安全模式。也许我应该注意一些具体的事情?
猜你喜欢
  • 2011-08-26
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 2010-11-05
  • 2012-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多