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

Nginx-如果之前没有发出GET请求,则阻止POST请求,nginx,firewall,spam,Nginx,Firewall,Spam,我尝试制定一条规则,如果IP地址以前没有发出GET请求,则阻止POST请求,以减少垃圾邮件机器人程序/ddos攻击的数量。 我不想使用CAPTCHA,因为它们对最终用户不是很友好 我是根据这篇文章得出这个想法的: 这就是我目前的情况: 如果请求类型为POST,则将ip地址(http_x_forwarded_for catch proxy)映射到$limit变量 map $request_method $limit { default ""; POST

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

我是根据这篇文章得出这个想法的:

这就是我目前的情况:

如果请求类型为POST,则将ip地址(http_x_forwarded_for catch proxy)映射到$limit变量

  map $request_method $limit {
    default         "";
    POST            $http_x_forwarded_for;
  }
我是否需要在GET请求时创建一个白名单,甚至创建一个cookie,然后在POST请求“生效”时检查它。 我不知道在Nginx是否能做到。 我不想在PHP上这样做