Configuration

Le pare-feu Shieldon dispose d'un ensemble étendu de configurations qui vous permettent de personnaliser son comportement. Voici un aperçu des propriétés disponibles que vous pouvez configurer :

Vous pouvez ajuster les paramètres lors de l'initialisation de l'instance Shieldon ou utiliser les API setProperty ou setProperties ultérieurement.

Initialisation


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

Valeurs par défaut

clé type valeur
time_unit_quota array ['s' => 2, 'm' => 10, 'h' => 30, 'd' => 60]
time_reset_limit entier 3600
interval_check_referer entier 5
interval_check_session entier 30
limit_unusual_behavior array ['cookie' => 5, 'session' => 5, 'referer' => 10]
cookie_name chaîne de caractères ssjd
cookie_domain chaîne de caractères "

Paramètres

time_unit_quota

Ce paramètre vous permet de définir les limites de visualisation des pages pour les utilisateurs de votre site web en fonction d'une unité de temps spécifique. Les clés du tableau sont 's' (seconde), 'm' (minute), 'h' (heure) et 'd' (jour), chaque clé correspondant à la limite de visualisation des pages par utilisateur pour cette unité de temps. La valeur par défaut est ['s' => 2, 'm' => 10, 'h' => 30, 'd' => 60]

  • tableau
clé valeur description
s entier Nombre de visualisations de pages par visiteur par seconde
m entier Nombre de visualisations de pages par visiteur par minute
h entier Nombre de visualisations de pages par visiteur par heure
d entier Nombre de visualisations de pages par visiteur par jour
  • Si vous souhaitez simplement limiter un utilisateur à voir 100 pages par jour, réglez simplement s, m et h sur un nombre très élevé, et réglez d sur 100.

  • Notez que lorsque les utilisateurs atteignent la limite, ils seront temporairement bannis et peuvent être débloqués en résolvant un Captcha, donc ne réglez pas les valeurs trop permissives, sinon cela n'a pas de sens d'utiliser cette bibliothèque.

time_reset_limit

C'est le temps en secondes après lequel le nombre de filtres marqués est réinitialisé. La valeur par défaut est 3600 (1 heure).

interval_check_referer

Similaire à interval_check_referer, cette propriété définit le délai en secondes avant que Shieldon ne commence à vérifier le cookie SESSION d'un utilisateur. La valeur par défaut est de 5 secondes.

Lorsqu'un utilisateur visite votre site web pour la première fois en entrant l'URL dans le navigateur, le HTTP_REFERER est vide. Après interval_check_referer secondes, Shieldon commencera à vérifier le HTTP_REFERER.

Vous pouvez ignorer cette valeur.

interval_check_session

Lorsqu'un utilisateur visite votre site web pour la première fois, après interval_check_session secondes, Shieldon commencera à vérifier le cookie SESSION.

limit_unusual_behavior

Ce paramètre vous permet de définir les limites pour être marqué comme un comportement inhabituel basé sur certaines conditions.

La valeur par défaut est ['cookie' => 5, 'session' => 5, 'referer' => 10].

Définissez les limites et les quotas pour être marqué comme un comportement inhabituel pour les visiteurs de votre site web.

  • tableau
clé valeur description
cookie entier Cookie généré par JavaScript.
session entier Session PHP
referer entier HTTP_REFERER

cookie_name

Cette propriété est utilisée pour spécifier le nom du cookie utilisé par Shieldon. La valeur par défaut est ssjd.

cookie_domain

Cette propriété définit le domaine sur lequel le cookie est restreint. Par défaut, le cookie est disponible pour tous les sous-domaines du serveur.

deny_attempt_enable

Si vous activez cette option, Shieldon enregistrera chaque échec consécutif du CAPTCHA. Une fois qu'un utilisateur atteint la limite spécifiée, Shieldon le classera comme une IP bloquée dans la table des règles, ce qui persiste jusqu'au début du nouveau cycle de données.

Même lorsqu'ils sont bloqués, les utilisateurs peuvent toujours accéder à la page d'avertissement. Cependant, s'ils échouent constamment à résoudre le CAPTCHA, il est fort probable qu'ils ne soient pas humains. En réponse, Shieldon les ajoutera à la liste noire du pare-feu système, les bannissant définitivement.

Par défaut :

'deny_attempt_enable' => [
        'data_circle'     => false,
        'system_firewall' => false,
    ],

record_attempt_detection_period

Pour éviter d'ajouter des bots de plateformes sociales au pare-feu iptables, tels que ceux de Facebook, Line, et autres qui captent des instantanés de vos pages web, vous devez ajuster les valeurs ci-dessous en fonction de vos besoins. (Unité : secondes)

Par défaut :

'record_attempt_detection_period' => 5,

reset_attempt_counter

Ce paramètre détermine combien de temps (en secondes) il faut attendre avant de réinitialiser le compteur d'essai. Dans ce cas, le compteur est réinitialisé toutes les 30 minutes.

Par défaut :

'reset_attempt_counter' => 1800,

iptables_watching_folder

Ce paramètre est le répertoire surveillé par le service iptables pour les commandes provenant du pare-feu Shieldon. Dans ce cas, il surveille le répertoire temporaire '/tmp/'.

Autres

Pour toutes les propriétés non mentionnées ici, vous pouvez vous référer à la fonction get_default_properties() de la classe Shieldon\Firewall\Helpers.

/**
 * Les paramètres par défaut du noyau 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/',
    ];
}

Note : Vous pouvez définir ces propriétés lors de l'initialisation de l'instance Shieldon ou ultérieurement en utilisant les API setProperty ou setProperties.