Configurazione

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);

Valori predefiniti

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 "

Parametri

time_unit_quota

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]

  • array
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.

  • array
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/'.

Altro

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.