| 当您遇到访问异常时,建议通过以下12个步骤进行排查: 
 1. 流量特征分析
 - 使用`netstat -ant | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n`命令统计IP连接数
 - 检查是否有单一IP在短时间内(>500次/分钟)的请求
 
 2. HTTP状态码监测
 - 重点关注499(客户端关闭连接)、502(网关错误)、504(超时)等异常状态码比例
 - 使用命令`grep "HTTP/1.1" access.log | awk '{print $9}' | sort | uniq -c`统计分布
 
 3. 异常请求特征
 - 检查User-Agent字段是否包含已知爬虫库(如Scrapy、HttpClient)
 - 查看是否存在大量相同URI的重复请求(使用`awk '{print $7}' access.log | sort | uniq -c | sort -nr | head -20`)
 
 4. 数据库监控
 - 监控MySQL的Processlist:`mysqladmin -u root -p processlist`
 - 检查是否有异常SQL操作(如大量SELECT...LOCK IN SHARE MODE)
 
 5. 文件系统审计
 - 使用`find ./ -type f -mtime -1`查看24小时内被修改的文件
 - 特别注意./source/class/、./template/等核心目录
 
 6. 内存分析
 - 检查PHP-FPM内存使用:`ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf "%dMB\n", sum/1024 }'`
 - 异常值通常>2GB(视站点规模而定)
 
 7. 进程监控
 - 使用`top -b -n 1 | grep -E 'php|mysql|http'`查看进程资源占用
 - 单个PHP进程CPU持续>30%需警惕
 
 8. 会话异常检测
 - 检查./data/session/目录文件数量
 - 正常情况应与在线用户数相当,异常时可能超过10倍
 
 9. 定时任务审计
 - 检查服务器crontab:`crontab -l`
 - 注意非常规时间的脚本执行(如凌晨3点的数据库导出)
 
 10. 邮件队列检查
 - 查看./data/mail/目录中的待发邮件数量
 - 突然激增可能遭遇注册机攻击
 
 11. 防御策略建议
 - 临时启用CC防御:在./config/config_global.php中添加
 
 复制代码$_config['security']['attackevasive'] = '2|3';
- 限制频率:在Nginx中添加
 
 复制代码limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m;
 12. 日志取证
 - 使用以下命令分析最近5分钟日志:
 
 复制代码awk -v d1="$(date --date="-5 min" "+%d/%b/%Y:%H:%M")" -v d2="$(date "+%d/%b/%Y:%H:%M")" '$0 > d1 && $0 < d2' access.log | awk '{print $1}' | sort | uniq -c | sort -nr
 如需更深入的分析,可以:
 1. 提供异常时间段的服务器负载截图(包括CPU、内存、IO)
 2. 分享最近3天访问量的对比曲线图
 3. 提取20条具有代表性的异常请求样本
 4. 检查./data/log/目录下的安全日志文件
 
 我们DZ插件网的技术团队可提供专业的网站安全审计服务,发现潜在风险后可为您推荐经过安全认证的防护方案。
 -- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
 |