延迟请求

延迟请求动作为满足页面规则条件的请求增加固定等待时间,然后再继续处理请求。它不会自行判断请求速率,因此应通过页面规则条件精确限定需要延迟的流量。

适用场景

  • 降低暴力破解、批量探测或自动化采集的执行效率。
  • 对可疑流量进行温和调节,避免直接拒绝可能造成的误伤。
  • 在不立即暴露拦截策略的情况下,增加攻击者的时间成本。

如果需要根据请求速率自动调节或拒绝流量,请使用限制请求速率;如果需要在异常行为持续一段时间后封锁请求,请使用封锁请求

工作原理

页面规则先判断请求是否满足生效条件。命中规则后,OpenResty Edge 将请求延迟指定秒数,再继续执行后续处理。未命中规则的请求不受影响。

配置方法

  1. 在 Edge Admin 中进入目标应用的 页面规则 页面并新建规则。
  2. 启用条件,根据 URI、客户端信息或其他请求特征限定需要延迟的流量。
  3. 动作 中选择 延迟
  4. 设置延迟秒数,然后创建规则并发布应用配置。

选择延迟动作

设置请求延迟时间

参数说明

  • :请求命中规则后需要等待的时间。延迟结束后,请求将继续处理,并不会自动被拒绝。

验证方法

发布配置后,分别请求一个命中规则的 URI 和一个不命中规则的 URI,对比客户端观察到的响应时间。验证时还应确认规则条件不会覆盖静态资源、健康检查或其他不需要延迟的请求。

注意事项

  • 延迟会占用请求处理时间。规则范围过宽或延迟时间过长时,可能影响正常用户体验并增加系统并发压力。
  • 不建议仅凭容易伪造的请求头识别客户端。使用 X-Forwarded-For 时,应确保该请求头由可信代理维护。
  • 对已确认的持续高频攻击,应结合请求速率限制、封锁请求或 IP 封禁,而不是无限增加延迟时间。