Il Firewall Shieldon dispone di un'ampia gamma di configurazioni che ti consentono di personalizzarne il comportamento. Di seguito è riportato un elenco delle proprietà disponibili per la configurazione:
Puoi regolare le impostazioni durante l'inizializzazione dell'istanza di Shieldon o utilizzando successivamente le API setProperty
o setProperties
.
Inizializzazione
$config = [
'time_unit_quota' => [
['s' => 2, 'm' => 10, 'h' => 30, 'd' => 60]
]
];
$kernel = new \Shieldon\Shieldon($config);
setProperty
$kernel->setProperty('time_unit_quota', [
's' => 2, 'm' => 10, 'h' => 30, 'd' => 60
]);
setProperties
$config = [
'time_unit_quota' => [
['s' => 2, 'm' => 10, 'h' => 30, 'd' => 60]
]
];
$kernel->setProperties($config);
chiave | tipo | valore |
---|---|---|
time_unit_quota | array | ['s' => 2, 'm' => 10, 'h' => 30, 'd' => 60] |
time_reset_limit | intero | 3600 |
interval_check_referer | intero | 5 |
interval_check_session | intero | 30 |
limit_unusual_behavior | array | ['cookie' => 5, 'session' => 5, 'referer' => 10] |
cookie_name | stringa | ssjd |
cookie_domain | stringa | " |
Questa impostazione consente di definire i limiti di visualizzazione delle pagine per gli utenti del tuo sito web in base a un'unità di tempo specifica. Le chiavi dell'array sono 's' (secondo), 'm' (minuto), 'h' (ora) e 'd' (giorno), con ogni chiave che corrisponde al limite di visualizzazione delle pagine per utente per quell'unità di tempo. Il valore predefinito è ['s' => 2, 'm' => 10, 'h' => 30, 'd' => 60]
chiave | valore | descrizione |
---|---|---|
s | intero | Numero di visualizzazioni delle pagine per visitatore per secondo |
m | intero | Numero di visualizzazioni delle pagine per visitatore per minuto |
h | intero | Numero di visualizzazioni delle pagine per visitatore per ora |
d | intero | Numero di visualizzazioni delle pagine per visitatore per giorno |
Se desideri limitare un utente a visualizzare solo 100 pagine
al giorno, imposta s
, m
e h
su un valore molto alto e d
su 100
.
Ricorda che quando gli utenti raggiungono il limite, vengono temporaneamente bloccati e possono essere sbloccati risolvendo un Captcha, quindi non impostare valori troppo permissivi, altrimenti non ha senso utilizzare questa libreria.
time_reset_limit
Questo è il tempo in secondi dopo il quale il numero di filtri viene reimpostato. Il valore predefinito è 3600 (1 ora).
interval_check_referer
Similmente a interval_check_referer
, questa proprietà imposta il ritardo in secondi prima che Shieldon inizi a controllare il cookie SESSION
di un utente. Il valore predefinito è 30
secondi.
Quando un utente visita il tuo sito web per la prima volta inserendo l'URL nel browser, l'HTTP_REFERER
è vuoto. Dopo interval_check_referer
secondi, Shieldon inizierà a controllare l'HTTP_REFERER
.
Puoi ignorare questo valore.
interval_check_session
Quando un utente visita il tuo sito web per la prima volta, dopo interval_check_session
secondi, Shieldon inizierà a controllare il cookie SESSION
.
limit_unusual_behavior
Questa impostazione ti consente di definire i limiti per essere contrassegnati come comportamento insolito in base a determinate condizioni.
Il valore predefinito è ['cookie' => 5, 'session' => 5, 'referer' => 10]
.
Imposta i limiti e le quote per essere contrassegnati come comportamento insolito per i visitatori del tuo sito web.
chiave | valore | descrizione |
---|---|---|
cookie | intero | Cookie generato da JavaScript. |
session | intero | Sessione PHP |
referer | intero | HTTP_REFERER |
cookie_name
Questa proprietà viene utilizzata per specificare il nome del cookie utilizzato da Shieldon. Il valore predefinito è ssjd
.
cookie_domain
Questa proprietà definisce il dominio a cui il cookie è limitato. Di default, il cookie è disponibile per tutti i sottodomini del server.
deny_attempt_enable
Se abiliti questa opzione, Shieldon registrerà ogni fallimento consecutivo del CAPTCHA. Una volta che un utente raggiunge il limite specificato, Shieldon lo classificherà come un IP bloccato nella tabella delle regole, che persiste fino all'inizio del nuovo ciclo dei dati.
Anche quando bloccati, gli utenti possono comunque accedere alla pagina di avviso. Tuttavia, se non riescono costantemente a risolvere il CAPTCHA, è molto probabile che non siano umani. In risposta, Shieldon li aggiunge alla lista nera del firewall di sistema, bloccandoli in modo permanente.
Predefinito:
'deny_attempt_enable' => [
'data_circle' => false,
'system_firewall' => false,
],
record_attempt_detection_period
Per evitare di aggiungere i bot delle piattaforme sociali al firewall iptables, come quelli di Facebook, Line e altri che catturano snapshot delle tue pagine web, dovresti regolare i valori seguenti in base alle tue esigenze. (Unità: secondi)
Predefinito:
'record_attempt_detection_period' => 5,
reset_attempt_counter
Questo parametro determina quanto tempo (in secondi) passa prima che il contatore dei tentativi venga resettato. In questo caso, il contatore viene resettato ogni 30 minuti.
Predefinito:
'reset_attempt_counter' => 1800,
iptables_watching_folder
Questo parametro è la directory che il servizio iptables monitora per i comandi provenienti dal Firewall Shieldon. In questo caso, sta monitorando la directory temporanea '/tmp/'
.
Per qualsiasi proprietà non menzionata qui, puoi fare riferimento alla funzione get_default_properties()
nella classe Shieldon\Firewall\Helpers
.
/**
* Le impostazioni predefinite del core di Shieldon.
*
* @return array
*/
function get_default_properties(): array
{
return [
'time_unit_quota' => [
's' => 2,
'm' => 10,
'h' => 30,
'd' => 60
],
'time_reset_limit' => 3600,
'interval_check_referer' => 5,
'interval_check_session' => 5,
'limit_unusual_behavior' => [
'cookie' => 5,
'session' => 5,
'referer' => 10
],
'cookie_name' => 'ssjd',
'cookie_domain' => '',
'cookie_value' => '1',
'display_online_info' => true,
'display_user_info' => false,
'display_http_code' => false,
'display_reason_code' => false,
'display_reason_text' => false,
'deny_attempt_enable' => [
'data_circle' => false,
'system_firewall' => false,
],
'deny_attempt_notify' => [
'data_circle' => false,
'system_firewall' => false,
],
'deny_attempt_buffer' => [
'data_circle' => 10,
'system_firewall' => 10,
],
'record_attempt_detection_period' => 5,
'reset_attempt_counter' => 1800,
'iptables_watching_folder' => '/tmp/',
];
}
Nota: Puoi impostare queste proprietà durante l'inizializzazione dell'istanza di Shieldon o successivamente utilizzando le API setProperty
o setProperties
.