0

我在 Azure Service Fabric 上部署了一个 WebAPI 服务,并且我想尽早阻止恶意/垃圾请求 - 理想情况下根本不访问我的服务(以避免被重击并且在处理此类请求时不使用 CPU 周期)。例如,/api/foo是一个有效的请求,/index.php是一个我不想处理的垃圾。

我使用 OWIN 中间件来配置请求管道(不是 IIS),可以在那里过滤请求 - 但这已经太晚了。

Azure Gateway可用于将不同的请求路由到不同的地方,但没有说它可以配置为丢弃一些请求路径。

尽早阻止请求的最佳做法是什么?

4

2 回答 2

1

Azure 应用程序网关是第 7 层负载均衡器,具有按域或 URL 路径路由请求的功能。

您可以创建您想要的规则,例如:http://example.com/api/*resource* 以及您映射到将呈现静态页面或根本不呈现任何内容的外部 IP 的任何其他内容。

但是没有什么能阻止您的服务器在有效路由上接收带有无效数据的请求,例如http://example.com/api/*resourceThatDoesNotExist*在重型端点上进行多次调用。

它提供的应用程序防火墙将保护您免受大多数 DDos 攻击,但如果您担心,它不会阻止人员或机器人访问您的服务器。

App Gateway 不提供与服务结构的任何开箱即用集成,因此需要大量手动配置。

Azure API Management内置了与服务结构的集成,并提供了一些可帮助您为应用程序添加更多保护的功能,它将:

  • 向您的 API 提供外观而不是直接访问,以便您可以公开所需的确切端点。
  • 验证 JWT 令牌、API 密钥、证书和凭证,以便请求仅在经过身份验证后到达您的服务器
  • 配置配额和限制,这样您就可以防止滥用
  • 配置访问和权限

这将增加额外的安全性,但也会增加成本和维护。

有许多替代方案,但其中大多数都需要一些配置才能与您的服务结构应用程序集成:

NGINX,您可以在集群内部或外部部署,配置路由规则并保护从那里的访问。

您还可以使用其他替代方法,例如:

于 2018-06-09T00:52:03.000 回答
1

您可以使用反向代理,例如集群顶部的Azure API 管理。或者在集群内使用TraefikEnvoy(作为服务运行)来过滤和路由传入流量。

于 2018-06-04T17:24:22.673 回答