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);
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 | " |
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]
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.
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/'
.
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
.