小编Jan*_*and的帖子

如何拒绝 POST 到 nginx 中的 url

我的应用程序上的一些 SQL-heavy URL(例如/members)正在受到僵尸网络的攻击。所以我想禁止任何人发布到这些 URL,同时允许其他人获取它们。

我试着做一个这样的嵌套循环:

if ($request_uri ~ .*members^)  {

   if ($request_method = POST ) {
         return 444;
     }
}
Run Code Online (Sandbox Code Playgroud)

但是 nginx 不接受这一点。

我也试过这个指令

location ~ "^/members$" {
    if ($request_method ~ ^(POST)$ ) {       
        return 444;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是这个也否认GET。

所以一无所知,感谢您的帮助。

nginx web-server botnet

4
推荐指数
1
解决办法
1万
查看次数

没有引用者时如何拒绝nginx中的请求?

在 nginx access.log 中,我看到很多行,例如:

1.2.3.4 - - [19/Oct/2014:22:48:11 -0400] "POST /someurl/suburl HTTP/1.1" 200 19967 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2"
Run Code Online (Sandbox Code Playgroud)

它们之间唯一的共同点是“-”(我认为这意味着没有设置引用者)。

所以我尝试使用以下方法拒绝这些请求:

if ($http_referer ~ ^(-))
    {  return 444;
}
Run Code Online (Sandbox Code Playgroud)

但是,正如您在上面看到的,这不适用于 POST 请求。

nginx botnet deny

2
推荐指数
1
解决办法
7773
查看次数

标签 统计

botnet ×2

nginx ×2

deny ×1

web-server ×1