用于阻止攻击请求的 Nginx

Nginx for block attacking requests

我在我的网站上收到此类请求(我认为这是攻击):

/name-of-post/==f.charAt(f.length-1))%7Bif(f=f.substr(1,f.length-2),-1!=x.indexOf(f))return%20I=!0

/name-of-post/&&(d=!1,b=b.substring(1));var%20m=b.split

我如何阻止它们以 return HTTP 444 状态代码?

在这种情况下,您知道 URI 的类型并且想要阻止它们,并且在警告说这不是! 100% 保护或 WAF(Web 应用程序防火墙)实现 这将解决 URI 类型的问题,包括一系列不良字符,如 ; %3B charAt var

  location ~ "(\bcharAt|;|\%3B|var\b)" {
  return 444 "Bad Request\n";
}

小心添加不良字符。例如,?+ = . 是合法的。

更好的方法是使用 Web 应用程序防火墙来检测此类请求并阻止它们。如果您想了解更多信息,请查看 mod_security。