精华 问答 | 分享 | 建议
4 分享
无论你是用个人版还是商家版,肯定在后台日志里看到一些垃圾扫描,如我刚在演示站后台看到的日志:
2020-07-03 15:57:26 404 /member.tar.gz 2020-07-03 15:57:26 404 /member/backup.tar.gz 2020-07-03 15:57:26 404 /member/backup.zip 2020-07-03 15:57:26 404 /member.zip 2020-07-03 15:57:26 404 /member/2018.tar.gz 2020-07-03 15:57:26 404 /member/www.tar.gz 2020-07-03 15:57:26 404 /member/www.zip 2020-07-03 15:57:26 404 /member/2018.zip 2020-07-03 15:57:26 404 /member/.idea/workspace.xml 2020-07-03 15:57:26 404 /member/pmd/index.php 2020-07-03 15:57:26 404 /member/2019.zip 2020-07-03 15:57:26 404 /member/2019.tar.gz
虽然他们什么也扫描不到,对系统没有什么影响,但毕竟一秒一次甚至几次会消耗你站的流量,同时影响正常用户的访问,怎么解决?
拉黑IP,不现实,因为他们的IP不可能是固定的
即使拉黑了,他们也已经访问到了你的服务器,已经消耗了你站的流量
下面的这个方法可以有效的屏蔽这些垃圾访问,并且在到达你服务器这前拦截掉,但只能用阿里的CDN来控制,当然别家的CDN有没有这个功能,我也不太清楚,大家可以参考:
不截图了,位置很容易找到
1、登录阿里云控制台,CDN-域名管理-管理-"边缘脚本"
2、模拟环境,添加规则,名称随意,规则代码
if eq(substr($uri, -4, -1), '.zip') { exit(404) } if eq(substr($uri, -4, -1), '.rar') { exit(404) } if eq(substr($uri, -4, -1), '.tgz') { exit(404) } if eq(substr($uri, -4, -1), '.sql') { exit(404) } if eq(substr($uri, -3, -1), '.7z') { exit(404) } if eq(substr($uri, -3, -1), '.gz') { exit(404) }
上面的代码大家一看就会明白,凡是访问.zip.rar.gz等等的,直接报404
当然也可以拦截一些其他的访问,比如某些垃圾扫描以为你的站是wordpress,利用WP的特征进行扫描,如wp-login.php/xmlrpc.php:
if eq(substr($uri, -12, -1), 'wp-login.php') { exit(404) } if eq(substr($uri, -10, -1), 'xmlrpc.php') { exit(404) }
填写完成后,发布到模拟环境,然后再发布到生产环境!
测试是否成功,可以随便访问一个地址如:
http://你的网址.com/test.zip
页面显示404,"Powered by Tengine..."即成功!
如以后需修改,生产环境中选择"复制规则到模拟环境",修改后再发布到生产环境即可.
本帖已关闭回复或无回复权限!