Block" Junk"对Azure Service Fabric WebAPI服务的请求

时间:2018-06-04 15:57:21

标签: azure-service-fabric azure-application-gateway

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

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

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

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

2 个答案:

答案 0 :(得分:1)

You could use a reverse proxy, like Azure API Management on top of your cluster. Or use Traefik or Envoy inside the cluster (running as a Service) to filter and route incoming traffic.

答案 1 :(得分:1)

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

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

但是没有什么能阻止您的服务器在有效路由上接收请求,其中包含http://example.com/api/*resourceThatDoesNotExist*之类的无效数据或重型端点上的多个呼叫。

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

App Gateway不提供开箱即用的服务架构,因此需要大量手动配置。

Azure API Management built-in integration包含服务结构,并提供一些可帮助您为应用添加更多保护的功能,它将:

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

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

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

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

您还可以使用其他替代方案: