HIGH FIX: Add default values to array variable assignments
Lines 1763, 1779: Variables from associative arrays may be empty
- req_count: Changed from ${ip_request_counts[$ip]} to ${ip_request_counts[$ip]:-0}
- fail_rate: Changed from ${scanner_ips[$ip]} to ${scanner_ips[$ip]:-0}
- Prevents type mismatch errors when array keys don't exist
- Provides sensible defaults (0) for missing values
Fixes QA HIGH issue at line 1788.
This commit is contained in:
@@ -1760,7 +1760,7 @@ calculate_threat_scores() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
score=0
|
score=0
|
||||||
req_count=${ip_request_counts[$ip]}
|
req_count=${ip_request_counts[$ip]:-0}
|
||||||
|
|
||||||
# IMPROVED: Base request volume scoring
|
# IMPROVED: Base request volume scoring
|
||||||
# Skip volume scoring for legitimate bots (Google, Bing, etc.)
|
# Skip volume scoring for legitimate bots (Google, Bing, etc.)
|
||||||
@@ -1776,7 +1776,7 @@ calculate_threat_scores() {
|
|||||||
# NEW: Success rate analysis bonuses
|
# NEW: Success rate analysis bonuses
|
||||||
# High failure rate (80%+ 404/403) = scanning behavior
|
# High failure rate (80%+ 404/403) = scanning behavior
|
||||||
if [ -n "${scanner_ips[$ip]}" ]; then
|
if [ -n "${scanner_ips[$ip]}" ]; then
|
||||||
fail_rate=${scanner_ips[$ip]}
|
fail_rate=${scanner_ips[$ip]:-0}
|
||||||
if [ "$fail_rate" -ge 90 ]; then
|
if [ "$fail_rate" -ge 90 ]; then
|
||||||
score=$((score + 8)) # Very high failure rate
|
score=$((score + 8)) # Very high failure rate
|
||||||
elif [ "$fail_rate" -ge 80 ]; then
|
elif [ "$fail_rate" -ge 80 ]; then
|
||||||
|
|||||||
Reference in New Issue
Block a user