是否有限制对 Windows 服务的服务调用的最佳实践?

Posted

技术标签:

【中文标题】是否有限制对 Windows 服务的服务调用的最佳实践?【英文标题】:Is there a best practice for throttling service calls to Windows services? 【发布时间】:2019-06-21 20:35:29 【问题描述】:

我的团队提供了一个客户端 API,允许应用程序与我们的 Windows 服务进行通信。有人担心恶意应用程序可能会向我们的服务发送请求,因此我们希望在客户端 API 中加入一些限制逻辑,以防止此类 DOS 攻击。

是否存在为 Windows 服务实施限制逻辑的最佳实践?我在网上只能找到网络限制(这是有道理的)。我想同样的想法也适用,但我想知道当一切都在本地系统上时是否有既定的机制来做到这一点。

【问题讨论】:

【参考方案1】:

您可能会发现像 TokenBucket 这样的开源项目适合实现这一点。

有关leaky bucket 算法的一般讨论,请参阅 WikiPedia。

对于您的应用程序,您可能需要考虑如何防止从同一台机器、同一进程或多个线程调用您的 API 的多个实例,这可能会影响您的实现方式。

【讨论】:

不知道您为什么被否决,但感谢您的线索。

以上是关于是否有限制对 Windows 服务的服务调用的最佳实践?的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 服务中使用的最佳计时器

Spring Boot - 限制创建的连接数

验证调用 API 的服务器的主机名

c#从Windows服务启动应用程序的最佳方式

如何在启用 UAC 的 Windows 服务中调用 LogonUser() 以获取不受限制的完整令牌?

Facebook 的 Graph API 调用限制是多少?