去评论
dz插件网

针对换IP和换UA的恶意爬虫的思路【特别是宽带动态拨号IP】

左右不逢缘
2024/11/07 09:04:25
一、对网站日志定时扫描,抓取出IP和对应的UA
二、命中某些特定黑名单UA,比如老旧浏览器不可能是正常用户的,直接拉黑IP一段时间。

三、出现两次或者三次同个IP换了不同UA,直接拉黑IP一段时间。

以上拉黑,要做到安全,可以再加一个IP白名单,把一些蜘蛛IP和常用IP,正常IP放进白名单,拉黑前过滤一下。
附linux下shell脚本样例供大家参考:
#!/bin/bash

# 设置要检测的日志文件路径
LOG_FILE="/path/to/access.log"

# 设置阈值,超过该数量的UA变化就认为是异常
UA_THRESHOLD=5

# 输出异常IP的文件
OUTPUT_FILE="suspicious_ips.txt"

# 清空输出文件
> "$OUTPUT_FILE"

# 从日志中提取IP和UA并统计UA的种类
awk '{
    # 假设IP在日志的第一列,User-Agent在日志的最后一列
    ip=$1
    ua=$NF

    # 存储每个IP的UA种类
    ip_ua[ip][ua]++
}
END {
    for (ip in ip_ua) {
        # 计算每个IP的UA数量
        ua_count = length(ip_ua[ip])
        
        # 如果UA种类超过阈值,记录该IP
        if (ua_count > UA_THRESHOLD) {
            print ip " has " ua_count " different User-Agents" >> "'$OUTPUT_FILE'"
        }
    }
}' "$LOG_FILE"

echo "Suspicious IPs written to $OUTPUT_FILE"