编程技术分享平台

网站首页 > 技术教程 正文

nginx中控制某些特定User-Agent的来源访问

xnh888 2024-10-06 04:51:08 技术教程 17 ℃ 0 评论

事情来由-某IP疯狂请求

今天早上刚到公司,就收到了报警群报警,显示服务器CPU超过70%,大早上的怎么可能有大批量的用户使用呢,一定是被人恶意请求了。

网站昨天就被刷了,量小在云平台的slb直接对IP进行封禁了。现在一定是更换了ip

今天早上的截图。


接着看大盘IP统计,显示117开头的IP,请求了5万多次。


那就赶紧封禁掉此IP吧,果断到云平台的SLB控制台对其加入了黑名单。

Nginx判断其User-Agent,对其限制

发现此次被刷,采用了相同的User-Agent。

虽然和昨天的IP不一样,但ua是一致的,于是 我就想应该通过ua对其进行封禁。

网上找到了如下代码

 #user_agent设置
    if ($http_user_agent ~ 'curl|baidu|1111')
    {
       return 403;
    }

因为域名较多,第一步考虑应该添加到http段落里面,但得到了如下错误

nginx: [emerg] "if" directive is not allowed here in /usr/local/nginx/conf/nginx.conf:57

只好添加到Server段中

然后重启

用Postman测试,果然好使。


两个问题

1、域名较多,需要在每个域名配置文件中添加,不能添加到Http段落

2、虽然可以防止了这个User-Agent的恶意请求,但如果对方更换了User-Agent,还是没办法。

不知道大家是如何防止大量恶意请求的。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表