当前位置:首页 > 维护 > 正文内容

利用伪静态设置禁止扫描网站文件屏蔽含非法字符的url

蓝飞鱼1年前 (2023-03-29)维护414

image.png

每天查看日志文件都发现好多扫描我网站压缩文件的记录,刚开始我只是屏蔽掉IP,可是每天都换不同的IP来扫,虽然我网站里没有这些文件,但是却出现了大量的404记录,我担心会影响网站的权重,万一不小心备份网站的时候打包了没有及时删除,数据被下载了,密码,后台什么的都泄漏了。网站会被入侵。于是禁止这些类型文件的扫描是非常有必要的。

Apache的伪静态里加上下面的代码:

<FilesMatch (.*)\.(exe|bat|bak|com|sql|zip|rar|7z|cab|jar|tar|gz|iso|bz2|z)$>
Order allow,deny
deny from all
</FilesMatch>

注意不要写在<IfModule></IfModule>里面。

Nginx的代码(网上找的,没有亲测过):

location ~/.*.(zip|rar|asp|jsp|aspx|ly|gz)$ {
return 403;
}

上面列出的格式,可以根据自己需要修改,这样设置好后,扫描带以上后缀的文件,都将返回403错误。

如果已经存在伪静态规则,使用下面这个。

if  ($request_uri ~* "zip|rar|asp|jsp|aspx|ly|gz|ga|csv|fdc") {
return 403;
}

image.png

注:以上设置了后,自己登陆后台的链接含有这些禁止的字符也一样打不开了。需要跳过后台目录生效,nginx伪静态排除指定目录伪静态规则设置。改进如下:

location ~* /admin/|/include/{
break; #跳过后台等目录
}
location ~* {#zblog自带规则
if (-f $request_filename/index.html){
	rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
	rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
	rewrite (.*) /index.php;
}

if  ($request_uri ~* "zip|rar|asp|jsp|aspx|ly|gz|ga|csv|apk|txt|doc|bak") {
return 403; #url关键字符过滤
}
}


扫描二维码推送至手机访问。

版权声明:本文由飞鱼时空发布,如需转载请注明出处。

本文链接:https://www.zwza.cn/post/2188.html

标签: 伪静态
分享给朋友: