前言
绝大多数网站被渗透、漏洞扫描、目录爆破、恶意爬虫采集,
第一步都是通过扫描器UA探测站点。Nmap、AWVS、Xray、BurpSuite、Dirsearch等主流渗透工具,默认都会携带专属User-Agent指纹,批量遍历网站漏洞、目录、敏感文件。
普通站长没有WAF、没有云防护、不懂复杂防火墙规则,裸奔站点极易被全网扫描器爬虫遍历,导致漏洞泄露、源码被爬、后台被爆破、权重被恶意刷低。
今天给大家分享
PHP拦截扫描器UA完整实战教程,无需插件、无需服务器配置、零资源占用,只需一段代码,即可精准拦截99%主流渗透扫描器、恶意爬虫、空UA非法访问,适配所有PHP网站,SEO优化适配百度收录,零基础直接部署。
一、什么是扫描器UA?为什么必须拦截?
UA(User-Agent)是客户端访问网站时携带的身份标识,用来告诉服务器“我是什么设备、什么浏览器”。
正常用户访问:携带Chrome、Edge、Safari等正规浏览器UA;
黑客扫描访问:携带Nmap、Xray、AWVS、Burp、python-requests等工具专属UA,甚至直接空UA访问。
拦截扫描器UA的核心价值:
- 从源头屏蔽自动化渗透扫描,减少网站漏洞探测风险
- 拦截恶意爬虫、批量采集、刷量工具,保护原创内容
- 降低服务器无效请求、节省带宽与算力资源
- 规避频繁扫描导致的IP封禁、收录波动、网站异常
- 低成本提升网站基础安全,适配等保基础防护要求
二、主流高危扫描器UA特征清单(全网最全)
以下是目前互联网所有高频渗透扫描器、爬虫工具、爆破工具的UA关键字,也是PHP拦截的核心匹配规则:
- 渗透扫描类:xray、awvs、nmap、burp、nessus、openvas、goby
- 爬虫脚本类:python-requests、curl、wget、go-http-client、httpclient
- 目录爆破类:dirsearch、ffuf、dirmap、scan、spider
- 恶意工具类:masscan、zmap、hydra、sqlmap、scanner
- 非法空UA:无任何User-Agent标识的裸请求(90%为恶意扫描)
只要请求UA包含以上关键词,100%属于自动化恶意扫描,可直接拦截返回403禁止访问。
三、PHP拦截扫描器UA完整代码(直接复制即用)
这段代码适配所有PHP程序(宝塔站点、织梦、WordPress、帝国、ThinkPHP等),放置在网站入口文件顶部即可全局生效,拦截所有恶意扫描器与爬虫。
<?php
// 获取访问UA并转为小写,忽略大小写匹配
$user_agent = strtolower($_SERVER['HTTP_USER_AGENT'] ?? '');
// 定义需要拦截的扫描器、爬虫、工具UA黑名单
$block_ua = [
'xray','awvs','nmap','burp','nessus','openvas','goby',
'python-requests','curl','wget','go-http-client','httpclient',
'dirsearch','ffuf','dirmap','scan','spider','masscan',
'zmap','hydra','sqlmap','scanner'
];
// 拦截空UA请求
if(empty($user_agent)){
http_response_code(403);
exit('Access Denied');
}
// 匹配拦截黑名单UA
foreach($block_ua as $val){
if(str_contains($user_agent,$val)){
http_response_code(403);
exit('Access Denied');
}
}
?>
部署方法(零基础)
1、将代码粘贴至网站
全局入口文件顶部:
ThinkPHP、Laravel:
index.phpWordPress:
wp-config.php织梦、普通PHP站点:根目录
index.php2、保存文件即可全局生效,无需重启服务器、无需配置环境。
四、防护优势与适配场景
核心优势
- 零资源消耗:纯PHP代码判断,不占用CPU、内存、带宽
- 精准拦截:只拦扫描工具、爬虫,不拦截正常用户、正规搜索引擎爬虫
- 规避误封:百度、360、搜狗爬虫UA不受任何影响,不影响收录
- 适配性极强:支持所有PHP版本、所有Linux/Windows站点环境
- 隐形防护:拦截后返回标准403,无暴露防护特征,降低针对性绕过概率
适用场景
个人博客、企业官网、源码站点、接口站点、无WAF防护裸站、预算有限的小型站点,是性价比最高的轻量化安全防护方案。
五、Nginx兼容拦截方案(双重兜底防护)
如果想进一步加固,可在Nginx配置文件添加UA拦截规则,服务器层面提前拦截,双层防护更安全:
# 拦截恶意扫描器UA
if ($http_user_agent ~* "xray|awvs|nmap|burp|python-requests|curl|wget|dirsearch|ffuf|sqlmap") {
return 403;
}
# 拦截空UA
if ($http_user_agent = "") {
return 403;
}执行
nginx -t 校验语法,无误后重启Nginx生效。
六、常见绕过误区与进阶加固方案
常见误区
误区1:拦截UA可以100%杜绝所有扫描
纠正:黑客可手动伪造浏览器UA绕过,但能拦截
99%自动化批量扫描、爬虫工具,大幅降低站点暴露风险。
误区2:拦截UA会影响网站收录
纠正:正规搜索引擎爬虫UA不在黑名单内,完全不影响百度、AI爬虫抓取收录。
误区3:有CDN就无需拦截UA
纠正:CDN默认不会拦截小众扫描器UA,仍会大量穿透扫描,PHP底层拦截必不可少。
进阶加固(防绕过)
- 增加请求头校验:拦截无Referer、无Accept的异常裸请求
- 增加访问频率限制:单IP秒级多次访问直接封禁
- 定期更新UA黑名单:新增新型扫描工具指纹,持续迭代防护规则
- 搭配IP黑名单:对长期扫描IP永久拦截,杜绝反复探测
七、全文总结
PHP拦截扫描器UA是PHP网站最轻量化、零成本、高性价比的基础安全防护手段。通过识别恶意扫描器、爬虫工具专属UA指纹,精准拦截自动化渗透探测、目录爆破、恶意采集行为,不影响正常用户访问与搜索引擎收录,有效解决网站被批量扫描、漏洞暴露、资源被薅的问题。
对于无专业WAF、无安全运维的中小型站点,部署UA拦截代码是必备防护操作,可大幅提升网站安全底线,规避绝大多数初级渗透与爬虫攻击。
#PHP拦截扫描器 #网站UA防护 #恶意爬虫拦截 #网站基础安全 #PHP安全加固 #渗透扫描拦截 #裸站防护教程 #站长运维干货 #防漏洞扫描 #网站防采集方案
关于墨者安全
墨者安全致力于安全防护、服务器高防、网络高防、ddos防护、cc防护、dns防护、防劫持、高防服务器、高防dns、网站防护等方面的服务,全网第一款指纹识别技术防火墙,自研的WAF指纹识别架构,提供任意CC和
DDoS攻击防御