首页 » Web前端 » php模仿ua拜访技巧_设备 NGINX 拒绝恶意访问 爬取网站

php模仿ua拜访技巧_设备 NGINX 拒绝恶意访问 爬取网站

访客 2024-11-05 0

扫一扫用手机浏览

文章目录 [+]

最近有点忙,一段韶光没管博客了,本日上来看了一下access.log,多了一些牛鬼蛇神,之前由于博客访问量少,没怎么弄,看来是时候带一波节奏了。

之前的做法

以前就已经陆续创造一些恶意用户访问了,比如:

php模仿ua拜访技巧_设备 NGINX 拒绝恶意访问  爬取网站

- 认为后端是java对tomcat的/manager进行访问的,

php模仿ua拜访技巧_设备 NGINX 拒绝恶意访问  爬取网站
(图片来自网络侵删)

- 认为后端是php做一些eval或者爆破操作的,

- 一些独狼/个人蜘蛛用户不分时段对网站进行大规模爬取的

由于都是一些零散的访问,针对这些行为 在nginx.conf同目录下创建了一个denyIpList.conf配置文件,内容形式如下:

# 针对单个ip的形式deny 171.94.171.205;deny 115.29.166.101;deny 182.247.251.48;deny 61.147.89.17;# 针对网段的形式deny 66.249.227.0/24;

然后在nginx.conf得当的位置引入此配置文件:

http { include mime.types; include denyIpList.conf; default_type application/octet-stream;...以下省略

重启nginx后生效,这样,当这些ip/网段发起访问后,直接返回403;

现在的做法

征象

今早上来看了一下访问记录后,创造了几组丧心病狂的内容:

1. user-agent为 Baidu-YunGuanCe-SLABot(ce.baidu.com) 的访问;

2. 来自美国66.249..网段的访问;

3. user-agent为 Mozilla/5.0 (compatible; MJ12bot/v1.4.7; … 的访问

4. user-agent为空(正常浏览器访问不会为空的)

剖析

个中第一个我刚开始以为是我配的百度云不雅观测网站定期康健检讨的访问记录,但是大略统计了一下,数量也太大了,而且不分时段都有,初步疑惑是有人闲着无聊借用百度云不雅观测供应的工具对本站进行了友e情yi压测…即便不是,我也不须要云不雅观测供应的分外做事,准备直接ban掉;

第二个,该当是谷歌的爬虫(ua判断),以前也看到过访问记录,频率比较低,直接deny访问地址的,但是最近访问的ip也太多了,根本ban不过来;

第三个,MJ12bot比较常用的爬虫工具,访问ip也是来自天下各地;

办理方案

根据以上剖析,创造大部分恶意要求可以通过user-agent来判断,因此,考虑通过nginx供应的一些内置变量进行配置:

首先我们还是新建一个文件denyUaList.conf在nginx.conf同目录下;

编写denyUaList.conf规则内容:

#禁止常用工具的抓取 if ($http_user_agent ~ (Scrapy|Curl|HttpClient|Java)) { return 403; } #禁止指定UA及UA为空的访问 if ($http_user_agent ~ \"大众Baidu-YunGuanCe|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|YisouSpider|MJ12bot|heritrix|EasouSpider|LinkpadBot|Ezooms|^$\"大众 ) { return 403; }

tips:把稳书写格式if和(之间有空格,|Ezooms|末了面有个|破折号,用于禁止空ua访问

在nginx.conf中得当的位置引入denyUaList.conf

...以上省略server { listen 443 ssl; server_name example.com;#你的域名 ...ssl配置省略...include denyUaList.conf;...以下省略

tips:把稳由于denyUaList.conf包含if等掌握语句,因此不能和denyIpList.conf一样放在根节点,须要自行根据须要放在server节点中

以上便是目前的配置方案,如果后续有优化升级,会在本帖更新,如果有朋友有更得当的方案,请在留言中回答!

测试

在Baidu-YunGuanCe前增加chrome|,然后利用谷歌浏览器访问博客地址,返回403forbidden,切换为ie访问,正常进入(不过d大@88250竟然给了一个超low的提示(/ □ )),测试通过,去掉chrome|,重启nginx,收工!

标签:

相关文章

介绍百度码,技术革新背后的智慧之光

随着科技的飞速发展,互联网技术已经成为我们生活中不可或缺的一部分。而在这个信息爆炸的时代,如何快速、准确地获取信息,成为了人们关注...

Web前端 2025-01-03 阅读4 评论0

介绍皮箱密码,开启神秘之门的钥匙

皮箱,作为日常生活中常见的收纳工具,承载着我们的珍贵物品。面对紧闭的皮箱,许多人却束手无策。如何才能轻松打开皮箱呢?本文将为您揭秘...

Web前端 2025-01-03 阅读4 评论0

介绍盗号器,网络安全的隐忧与应对步骤

随着互联网的快速发展,网络安全问题日益突出。盗号器作为一种非法工具,对网民的个人信息安全构成了严重威胁。本文将深入剖析盗号器的原理...

Web前端 2025-01-03 阅读2 评论0