TsgcWebSocketFirewall › Proprietà › BruteForce
Traccia i tentativi di autenticazione falliti per IP e vieta gli indirizzi che superano una soglia configurabile entro una finestra temporale.
property BruteForce: TsgcFirewallBruteForce read FBruteForce write SetBruteForce;
—
Imposti BruteForce.Enabled su True e chiami RegisterFailedAttempt dall'handler di autenticazione del server ogni volta che le credenziali vengono rifiutate. Quando un IP accumula più di MaxAttempts fallimenti entro TimeWindowSec secondi, il firewall lo banna per BanDurationSec secondi e genera OnViolation con tipo fvBruteForce. Se BanEscalation è abilitato, la durata effettiva del ban viene derivata dal relativo elenco Levels invece di BanDurationSec. Valori predefiniti: MaxAttempts=5, TimeWindowSec=60, BanDurationSec=300.
sgcWebSocketFirewall1.BruteForce.Enabled := True;
sgcWebSocketFirewall1.BruteForce.MaxAttempts := 3;
sgcWebSocketFirewall1.BruteForce.TimeWindowSec := 60;
sgcWebSocketFirewall1.BruteForce.BanDurationSec := 600;
// Report failed logins from the authentication handler
procedure TForm1.ServerAuthentication(Connection: TsgcWSConnection;
aUser, aPassword: String; var Authenticated: Boolean);
begin
Authenticated := ValidateCredentials(aUser, aPassword);
if not Authenticated then
sgcWebSocketFirewall1.RegisterFailedAttempt(Connection.IP);
end;