我在Azure Service Fabric上部署了一个WebAPI服务,我希望尽早阻止恶意/垃圾请求 - 理想情况下根本不打击我的服务(以避免受到重创并且不会在处理此类请求时使用CPU周期)。
例如,/api/foo
是有效请求,/index.php
是我希望不处理的垃圾。
我使用OWIN中间件来配置请求管道(而不是IIS),可以在那里过滤请求 - 但这已经太晚了。
有Azure Gateway可用于将不同的请求路由到不同的地方,但没有任何说明它可以配置为删除一些请求路径。
阻止请求的最佳做法是什么?
答案 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包含服务结构,并提供一些可帮助您为应用添加更多保护的功能,它将:
这将增加额外的安全性,但也会增加成本和维护。
有许多替代方案,但大多数都需要一些配置才能与您的服务架构应用程序集成:
NGINX ,您可以在群集内部或外部部署,配置路由规则并保护访问权限。
您还可以使用其他替代方案: