From 72b36f58f99a248961539d357c7ae20c381d742e Mon Sep 17 00:00:00 2001 From: samwaf Date: Thu, 28 Nov 2024 15:23:14 +0800 Subject: [PATCH] fix:ip zero Closes #68 --- global/config.go | 18 +++++++++--------- service/waf_service/waf_stat.go | 8 ++++---- utils/common.go | 7 ++++++- waftask/task_config.go | 2 +- 4 files changed, 20 insertions(+), 15 deletions(-) diff --git a/global/config.go b/global/config.go index ddb64a6..61a2cbc 100644 --- a/global/config.go +++ b/global/config.go @@ -2,15 +2,15 @@ package global var ( /******记录参数配置****************/ - GCONFIG_RECORD_MAX_BODY_LENGTH int64 = 1024 * 2 //限制记录最大请求的body长度 record_max_req_body_length - GCONFIG_RECORD_MAX_RES_BODY_LENGTH int64 = 1024 * 4 //限制记录最大响应的body长度 record_max_rep_body_length - GCONFIG_RECORD_RESP int64 = 0 // 是否记录响应记录 record_resp - GCONFIG_RECORD_PROXY_HEADER string = "X-Forwarded-For,X-Real-IP" //配置获取IP头信息 - GCONFIG_RECORD_AUTO_LOAD_SSL int64 = 1 //是否每天凌晨3点自动加载ssl证书 - GCONFIG_RECORD_KAFKA_ENABLE int64 = 0 //kafka 是否激活 - GCONFIG_RECORD_KAFKA_URL string = "127.0.0.1:9092" //kafka url地址 - GCONFIG_RECORD_KAFKA_TOPIC string = "samwaf_logs_topic" //kafka topic - GCONFIG_RECORD_REDIRECT_HTTPS_CODE int64 = 301 //80跳转https的方式 + GCONFIG_RECORD_MAX_BODY_LENGTH int64 = 1024 * 2 //限制记录最大请求的body长度 record_max_req_body_length + GCONFIG_RECORD_MAX_RES_BODY_LENGTH int64 = 1024 * 4 //限制记录最大响应的body长度 record_max_rep_body_length + GCONFIG_RECORD_RESP int64 = 0 // 是否记录响应记录 record_resp + GCONFIG_RECORD_PROXY_HEADER string = "" //配置获取IP头信息 + GCONFIG_RECORD_AUTO_LOAD_SSL int64 = 1 //是否每天凌晨3点自动加载ssl证书 + GCONFIG_RECORD_KAFKA_ENABLE int64 = 0 //kafka 是否激活 + GCONFIG_RECORD_KAFKA_URL string = "127.0.0.1:9092" //kafka url地址 + GCONFIG_RECORD_KAFKA_TOPIC string = "samwaf_logs_topic" //kafka topic + GCONFIG_RECORD_REDIRECT_HTTPS_CODE int64 = 301 //80跳转https的方式 GCONFIG_RECORD_LOGIN_MAX_ERROR_TIME int64 = 3 //登录周期里错误最大次数 GCONFIG_RECORD_LOGIN_LIMIT_MINTUTES int64 = 1 //登录错误记录周期 单位分钟最小1 diff --git a/service/waf_service/waf_stat.go b/service/waf_service/waf_stat.go index d0cc8f2..5371e5d 100644 --- a/service/waf_service/waf_stat.go +++ b/service/waf_service/waf_stat.go @@ -147,12 +147,12 @@ func (receiver *WafStatService) StatHomeSumDayTopIPRangeApi(req request.WafStats func (receiver *WafStatService) StatAnalysisDayCountryRangeApi(req request.WafStatsAnalysisDayRangeCountryReq) []response2.WafAnalysisDayStats { var CountOfRange []response2.WafAnalysisDayStats if req.AttackType == "" { - global.GWAF_LOCAL_STATS_DB.Model(&model.StatsIPCityDay{}).Where("day between ? and ?", - req.StartDay, req.EndDay).Select(" country as Name ,sum(count) as Value").Group("country").Order("sum(count) desc").Scan(&CountOfRange) + global.GWAF_LOCAL_STATS_DB.Model(&model.StatsIPCityDay{}).Where("day between ? and ? and country<>? and country<>? ", + req.StartDay, req.EndDay, "0", "内网").Select(" country as Name ,sum(count) as Value").Group("country").Order("sum(count) desc").Scan(&CountOfRange) } else { - global.GWAF_LOCAL_STATS_DB.Model(&model.StatsIPCityDay{}).Where("day between ? and ? and type = ? ", - req.StartDay, req.EndDay, req.AttackType).Select(" country as Name ,sum(count) as Value").Group("country").Order("sum(count) desc").Scan(&CountOfRange) + global.GWAF_LOCAL_STATS_DB.Model(&model.StatsIPCityDay{}).Where("day between ? and ? and type = ? and country<>? and country<>? ", + req.StartDay, req.EndDay, req.AttackType, "0", "内网").Select(" country as Name ,sum(count) as Value").Group("country").Order("sum(count) desc").Scan(&CountOfRange) } return CountOfRange diff --git a/utils/common.go b/utils/common.go index a27b612..3cdb11f 100644 --- a/utils/common.go +++ b/utils/common.go @@ -136,7 +136,12 @@ func GetCountry(ip string) []string { zlog.Debug("{region: %s, took: %s}\n", region, time.Since(tStart)) regions := strings.Split(region, "|") - + //如果是内网IP情况下显示内网的内容 + if regions[4] == "内网IP" { + regions[0] = "内网" + regions[1] = "内网" + regions[2] = "内网" + } return regions } diff --git a/waftask/task_config.go b/waftask/task_config.go index 20743cc..f5e5fee 100644 --- a/waftask/task_config.go +++ b/waftask/task_config.go @@ -122,7 +122,7 @@ func TaskLoadSetting(initLoad bool) { updateConfigStringItem(initLoad, "system", "record_log_type", global.GWAF_RUNTIME_RECORD_LOG_TYPE, "日志记录类型", "options", "all|全部,abnormal|非正常") updateConfigStringItem(initLoad, "system", "gwaf_center_enable", global.GWAF_CENTER_ENABLE, "中心开关", "bool", "false|关闭,true|开启") updateConfigStringItem(initLoad, "system", "gwaf_center_url", global.GWAF_CENTER_URL, "中心URL", "string", "") - updateConfigStringItem(initLoad, "system", "gwaf_proxy_header", global.GCONFIG_RECORD_PROXY_HEADER, "获取访客IP头信息(按照顺序)", "string", "") + updateConfigStringItem(initLoad, "system", "gwaf_proxy_header", global.GCONFIG_RECORD_PROXY_HEADER, "获取访客IP头信息(按照顺序)比如:X-Forwarded-For,X-Real-IP ,留空则提取的是直接访客IP", "string", "") updateConfigIntItem(initLoad, "kafka", "kafka_enable", global.GCONFIG_RECORD_KAFKA_ENABLE, "kafka 是否激活", "int", "") updateConfigStringItem(initLoad, "kafka", "kafka_url", global.GCONFIG_RECORD_KAFKA_URL, "kafka url地址", "string", "")