feat: add captcha-backed forum security hardening
This commit is contained in:
65
config/forum_security.php
Normal file
65
config/forum_security.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'enabled' => env('FORUM_SECURITY_ENABLED', true),
|
||||
|
||||
'thresholds' => [
|
||||
'safe' => 20,
|
||||
'log' => 20,
|
||||
'captcha' => 40,
|
||||
'moderate' => 60,
|
||||
'block' => 80,
|
||||
'firewall_block' => 70,
|
||||
],
|
||||
|
||||
'queues' => [
|
||||
'moderation' => env('FORUM_SECURITY_MODERATION_QUEUE', 'forum-moderation'),
|
||||
'firewall' => env('FORUM_SECURITY_FIREWALL_QUEUE', 'forum-security'),
|
||||
],
|
||||
|
||||
'firewall' => [
|
||||
'enabled' => true,
|
||||
'request_pattern' => [
|
||||
'window_seconds' => 60,
|
||||
'burst_threshold' => 15,
|
||||
'burst_penalty' => 25,
|
||||
'missing_user_agent_penalty' => 10,
|
||||
'suspicious_path_penalty' => 20,
|
||||
'repeat_route_penalty' => 20,
|
||||
],
|
||||
'spam_wave' => [
|
||||
'window_minutes' => 15,
|
||||
'same_hash_threshold' => 3,
|
||||
'same_hash_penalty' => 30,
|
||||
'same_ip_flagged_threshold' => 4,
|
||||
'same_ip_flagged_penalty' => 25,
|
||||
'same_signature_threshold' => 3,
|
||||
'same_signature_penalty' => 20,
|
||||
],
|
||||
'thread_attack' => [
|
||||
'window_minutes' => 10,
|
||||
'topic_threshold' => 4,
|
||||
'reply_threshold' => 8,
|
||||
'topic_penalty' => 25,
|
||||
'reply_penalty' => 20,
|
||||
],
|
||||
'login_attack' => [
|
||||
'window_minutes' => 15,
|
||||
'login_threshold' => 10,
|
||||
'register_threshold' => 6,
|
||||
'login_penalty' => 30,
|
||||
'register_penalty' => 35,
|
||||
],
|
||||
'scan' => [
|
||||
'lookback_minutes' => 15,
|
||||
'auto_blacklist_attempts' => 4,
|
||||
'auto_blacklist_risk' => 70,
|
||||
'auto_blacklist_reason' => 'Automatically blacklisted by forum firewall activity monitor.',
|
||||
],
|
||||
],
|
||||
|
||||
'logging' => [
|
||||
'store_request_payload' => false,
|
||||
'reason_limit' => 8,
|
||||
],
|
||||
];
|
||||
Reference in New Issue
Block a user