Nginx - 如果之前没有发出GET请求,则阻止POST请求

时间:2018-04-14 02:04:44

标签: nginx firewall spam

如果IP地址之前没有发出过GET请求,我试图制定阻止POST请求的规则,以减少垃圾邮件机器人/ ddos​​攻击的数量。 我不想使用验证码,因为它们对最终用户不是很友好。

我基于这篇文章得到了这个想法: First Line of Defense: Blocking Bad POST Requests Using NGINX Rate Limiting | reverb.com

这就是我现在所拥有的:

如果请求属于POST类型,则将IP地址(http_x_forwarded_for catch proxy以及)映射到$ limit变量

  map $request_method $limit {
    default         "";
    POST            $http_x_forwarded_for;
  }

我是否需要在GET请求甚至cookie上创建白名单列表,然后在POST请求" kicks-in"时检查它。 我不知道是否可以在Nginx完成。 我不想在PHP上做这件事。

0 个答案:

没有答案