API du noyau

Noyau

Shieldon\Firewall\Kernel
  • ban
  • getCurrentUrl
  • managedBy
  • run
  • setClosure
  • exclude
  • setExcludedUrls
  • setLogger
  • setProperty
  • setProperties
  • setStrict
  • unban

ban($ip)

  • param string $ip - Adresse IP unique.
  • return void

Bloquer une adresse IP.

Exemple :

$kernel->ban('33.125.12.87');

getCurrentUrl()

  • return string

Renvoie l'URL actuelle. Cette méthode équivaut à $_SERVER['REQUEST_URI'].

Exemple :

echo $kernel->getCurrentUrl();

managedBy($type)

  • param string $type "" managed | config | demo
  • return void

Indique à Shieldon par quel type de gestion il est géré. Ce paramètre n'a d'effet que sur le panneau de configuration du pare-feu.

Exemple :

$kernel->managedBy('demo');

run()

  • return int

Exécute le processus de vérification.

Codes de réponse :

constant valeur raison
RESPONSE_DENY 0 Bloqué en permanence.
RESPONSE_ALLOW 1 Autorisé.
RESPONSE_TEMPORARILY_DENY 2 Bloqué temporairement et peut être débloqué en résolvant un Captcha.
RESPONSE_LIMIT 3 Arrêté en raison d'une limite de session en ligne atteinte.

Exemple :

$result = $kernel->run();

setClosure($key, $closure)

  • param string $key - Le nom d'identification de la fonction de fermeture.
  • param Closure $closure - La fonction de fermeture.
  • return void

Définit une fonction de fermeture.

Exemple :

$kernel->setClosure('www_authenticate', function() use ($authHandler, $authenticateList) {
    $authHandler->set($authenticateList);
    $authHandler->check();
});

exclude($uriPath)

  • param string $uriPath - Le composant de chemin d'accès d'un URI.
  • return void

Définit une URL à exclure de la protection.

Exemple :

$kernel->exclude('/firewall/panel');

setExcludedUrls($urls)

  • param array $urls - La collection d'URLs.
  • return void

Définit les URLs à exclure de la protection.

Exemple :

$list = [
    '/example/1',
    '/wp-login.php',
];

$kernel->setExcludedUrls($list);

setLogger($logger)

  • param ActionLogger $logger - Enregistre les journaux d'action pour les utilisateurs.
  • return void

Définit un enregistreur de journaux d'action.

Exemple :

$kernel->setLogger(
    new \Shieldon\Firewall\Log\ActionLogger(
        BOOTSTRAP_DIR . '/../tmp/shieldon'
    )
);

setProperty($key, $value)

  • param string $key - Le nom de clé de la propriété.
  • param mixed $value - La valeur de la clé.
  • return void

Exemple :

$kernel->setProperty('time_unit_quota', [
    's' => 4,
    'm' => 20, 
    'h' => 60, 
    'd' => 240,
]);

Vous trouverez une explication des paramètres ici.

setProperties($settings)

  • param array $settings - Les paramètres.
  • return void

Exemple :

$kernel->setProperties($settings);

setStrict($bool)

  • param bool $bool - Définissez true pour activer le mode strict, false pour le désactiver.
  • return void

Exemple :

$kernel->setStrict(true);

unban($ip)

  • param string $ip - Une adresse IP.
  • return void

Débloque une adresse IP.

Exemple :

$kernel->unban('33.33.33.33');

Traitement Captcha

Shieldon\Firewall\Kernel\CaptchaTrait
  • setCaptcha
  • captchaResponse
  • disableCaptcha

setCaptcha($instance)

  • param CaptchaInterface $instance - L'instance Captcha.
  • return void

Définit un Captcha. Pour des utilisations détaillées, veuillez consulter la section Captcha.

$kernel->setCaptcha(
    new \Shieldon\Firewall\Captcha\Recaptcha([
        'key' => '6LfkOaUUAAAAAH-AlTz3hRQ25SK8kZKb2hDRSwz9',
        'secret' => '6LfkOaUUAAAAAJddZ6k-1j4hZC1rOqYZ9gLm0WQh',
        'version' => 'v2',
        'lang' => 'en',
    ])
);

captchaResponse()

  • return bool

Renvoie le résultat des Captchas. true : Captcha résolu avec succès, false sinon.

Exemple :

$result = $this->captchaResponsse();

disableCaptcha()

  • return void

Désactive tous les modules Captcha. Cette méthode est utilisée à des fins de test unitaire.


Traitement des composants

Shieldon\Firewall\Kernel\ComponentTrait
  • setComponent
  • getComponent
  • disableComponents

setComponent($instance)

  • param ComponentProvider $instance - L'instance du composant.
  • return void

Définit un composant.

Exemple :

$kernel->setComponent(
    new \Shieldon\Firewall\Component\UserAgent()
);

getComponent()

  • param string $name - Le nom de classe du composant.
  • return void | ComponentProvider

Récupère une instance de composant à partir du conteneur de composants.

Exemple :

$useragent = $kernel->getComponent('UserAgent');

disableComponents()

  • return void

Désactive tous les composants, même s'ils ont déjà été configurés.

Exemple :

$kernel->disableComponents();

Traitement des pilotes

Shieldon\Firewall\Kernel\DriverTrait
  • setDriver
  • setChannel
  • disableDbBuilder

setDriver($driver)

  • param DriverProvider $driver - Interroge les données du pilote que vous avez choisi.
  • return void

Exemple :

$dbLocation = APPPATH . 'cache/shieldon.sqlite3';
$pdoInstance = new \PDO('sqlite:' . $dbLocation);

$kernel->setDriver(
    new \Shieldon\Firewall\Driver\SqliteDriver($pdoInstance)
);

setChannel($channel)

  • param string $channel - Spécifie un canal.
  • return void

Exemple :

$kernel->setChannel('web_project');

disableDbBuilder()

  • return void

Désactive la construction automatique de la base de données.

Exemple :

$kernel->disableDbBuilder();

Traitement des filtres

Shieldon\Firewall\Kernel\FilterTrait
  • setFilters
  • setFilter
  • disableFilters

setFilters($settings)

  • param array $settings - Paramètres des filtres.
  • return void
$kernel->setFilters([
    'session' => true,
    'cookie' => true,
    'referer' => true,
    'frequency' => true,
]);

setFilter($filterName, $value)

  • param string $filterName - Le nom du filtre.
  • param bool $value - True pour activer le filtre, sinon false.
  • return void

Exemple :

$kernel->setFilter('session', false);
$kernel->setFilter('cookie', false);
$kernel->setFilter('referer', true);
$kernel->setFilter('frequency', false); 

Paramètres par défaut :

clé type valeur description
session bool true Vérifie la session créée par le pilote de session Shieldon.
cookie bool false Vérifie les cookies générés par JavaScript.
referer bool true Vérifie HTTP_REFERER.
frequency bool true Vérifie les paramètres time_unit_quota.

Le filtre Cookie est défini par défaut sur false, car vous devez afficher le snippet JavaScript sur vos pages Web. Le snippet généré par getJavascript() générera un cookie via JavaScript.

Consultez getJavascript() pour son utilisation.

disableFilters()

  • return void

Désactive tous les filtres, même s'ils ont déjà été configurés.

$kernel->disableFilters();

Traitement des IP

Shieldon\Firewall\IpTrait
  • setIp
  • getIp
  • setRdns
  • getRdns

setIp($ip)

  • param string $ip - Adresse IP.
  • return void

Définit une adresse IP.

Exemple :

// Voici un exemple pour capturer l'adresse IP réelle des visiteurs depuis CloudFlare.
$realIp = $_SERVER['HTTP_CF_CONNECTING_IP'];

// Si vous utilisez un service CDN sur votre site Web,
// assurez-vous de capturer l'adresse IP réelle des visiteurs, sinon ils seront bloqués.
$kernel->setIp($realIp);

getIp()

  • return string

Obtient l'IP actuellement définie.

Exemple :

$ip = $kernel->getIp();

setRdns($rdns)

  • param string $rdns - Enregistrement DNS inversé pour cette adresse IP.
  • return void

Définit un enregistrement DNS inversé pour la vérification.

Exemple :

$kernel->setRdns('localhost');

getRdns()

  • return string

Obtient le nom d'hôte résolu par IP.

$rdns = $kernel->getRdns();

Traitement des messageries

Shieldon\Firewall\Kernel\MessengerTrait
  • setMessenger

setMessenger($instance)

  • param MessengerInterface $instance - L'instance du messager.
  • return void

Exemple :

$apiKey = '981441296:AAGCcgv_NETMdWQCBTaMOk_yoMfax5EV7YQ';
$channel = '@your_channel';

$telegramMessenger = new \Messenger\Telegram($apiKey, $channel);

$kernel->setMessenger($telegramMessenger);

Traitement des modèles

Shieldon\Firewall\Kernel\TemplateTrait
  • setDialog
  • respond
  • setTemplateDirectory
  • getJavascript

setDialog($settings)

  • param array $settings - Les paramètres de l'interface utilisateur du dialogue.
  • return void

Personnalise l'interface utilisateur du dialogue.

Exemple :

$settings = [
    'lang'             => 'en',
    'background_image' => '',
    'bg_color'         => '#ffffff',
    'header_bg_color'  => '#212531',
    'header_color'     => '#ffffff',
    'shadow_opacity'   => '0.2',
];

$kernel->setDialog($settings);

respond()

  • return ResponseInterface

Renvoie le résultat de la réponse.

Exemple :

$response = $kernel->respond();

setTemplateDirectory($directory)

  • param array $directory - Le répertoire où se trouvent les fichiers de modèle.
  • return void

Définit le répertoire du modèle frontend. Vous pouvez copier ces fichiers dans un répertoire et les modifier pour personnaliser l'apparence des dialogues.

Exemple :

$kernel->setTemplateDirectory(YOUR_DIRECTORY_PATH);

getJavascript()

  • return string

Affiche un extrait de code JavaScript dans vos pages Web.

Cet extrait génère un cookie dans le navigateur du client, puis nous vérifions le cookie pour identifier si le client est un robot ou non.

// Affichez cette variable dans votre modèle de page.
$jsCode = $kernel->getJavascript();

Session

Shieldon\Firewall\Kernel\SessionTrait
  • limitSession
  • getSessionCount

limitSession($count, $period, $unique)

  • param int $count 1000 Le nombre d'utilisateurs en ligne. S'il est atteint, les utilisateurs seront en file d'attente.
  • param int $period 300 La période de temps autorisant la navigation des utilisateurs. (unité : seconde)
  • param bool $unique false Autorise une seule session par adresse IP.
  • return void

Limite les sessions en ligne.

Exemple :

$kernel->limitSession(100, 300);

getSessionCount()

  • return int

Obtient le nombre de personnes en ligne. Si limitSession est activé.

Exemple :

$count = $kernel->getSessionCount();