API del kernel

Kernel

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

ban($ip)

  • param string $ip - Indirizzo IP singolo.
  • return void

Blocca un indirizzo IP.

Esempio:

$kernel->ban('33.125.12.87');

getCurrentUrl()

  • return string

Restituisce l'URL corrente. Questo metodo è equivalente a $_SERVER['REQUEST_URI'].

Esempio:

echo $kernel->getCurrentUrl();

managedBy($type)

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

Indica a Shieldon il tipo di gestione del Firewall. Questa impostazione influisce solo sul Pannello Firewall.

Esempio:

$kernel->managedBy('demo');

run()

  • return int

Avvia il processo di controllo.

Codici di risposta:

costante valore motivo
RESPONSE_DENY 0 Bloccato in modo permanente.
RESPONSE_ALLOW 1 Autorizzato.
RESPONSE_TEMPORARILY_DENY 2 Bloccato temporaneamente e può essere sbloccato risolvendo il Captcha.
RESPONSE_LIMIT 3 Fermato per aver raggiunto il limite di sessioni online.

Esempio:

$result = $kernel->run();

setClosure($key, $closure)

  • param string $key - Il nome di identificazione della chiusura.
  • param Closure $closure - La funzione di chiusura.
  • return void

Imposta una funzione di chiusura.

Esempio:

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

exclude($uriPath)

  • param string $uriPath - Il componente di percorso di un URI.
  • return void

Imposta un URL che si desidera escludere dalla protezione.

Esempio:

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

setExcludedUrls($urls)

  • param array $urls - La collezione di URL.
  • return void

Imposta gli URL che si desidera escludere dalla protezione.

Esempio:

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

$kernel->setExcludedUrls($list);

setLogger($logger)

  • param ActionLogger $logger - Registra i log delle azioni per gli utenti.
  • return void

Imposta un logger di log delle azioni.

Esempio:

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

setProperty($key, $value)

  • param string $key - Il nome della chiave per la proprietà.
  • param mixed $value - Il valore della chiave.
  • return void

Esempio:

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

La spiegazione delle impostazioni si trova qui.

setProperties($settings)

  • param array $settings - Le impostazioni.
  • return void

Esempio:

$kernel->setProperties($settings);

setStrict($bool)

  • param bool $bool - Imposta su true per abilitare la modalità rigorosa, false per disabilitarla.
  • return void

Esempio:

$kernel->setStrict(true);

unban($ip)

  • param string $ip - Un indirizzo IP.
  • return void

Sblocca un indirizzo IP.

Esempio:

$kernel->unban('33.33.33.33');

Trait Captcha

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

setCaptcha($instance)

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

Imposta un Captcha. Per dettagli sull'utilizzo, consulta la sezione Captcha.

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

captchaResponse()

  • return bool

Restituisce il risultato dai Captcha. true: Captcha risolto con successo, false altrimenti.

Esempio:

$result = $this->captchaResponsse();

disableCaptcha()

  • return void

Disabilita tutti i moduli Captcha. Questo metodo è per scopi di test modulare.


Trait Component

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

setComponent($instance)

  • param ComponentProvider $instance - L'istanza del componente.
  • return void

Imposta un componente.

Esempio:

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

getComponent()

  • param string $name - Il nome della classe del componente.
  • return void | ComponentProvider

Ottiene un'istanza del componente dal contenitore dei componenti.

Esempio:

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

disableComponents()

  • return void

Disabilita tutti i componenti anche se sono già stati configurati.

Esempio:

$kernel->disableComponents();

Trait Driver

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

setDriver($driver)

  • param DriverProvider $driver - Query dati dal driver scelto.
  • return void

Esempio:

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

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

setChannel($channel)

  • param string $channel - Specifica un canale.
  • return void

Esempio:

$kernel->setChannel('web_project');

disableDbBuilder()

  • return void

Disabilita la creazione automatica del database.

Esempio:

$kernel->disableDbBuilder();

Trait Filter

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

setFilters($settings)

  • param array $settings - Impostazioni del filtro.
  • return void
$kernel->setFilters([
    'session' => true,
    'cookie' => true,
    'referer' => true,
    'frequency' => true,
]);

setFilter($filterName, $value)

  • param string $filterName - Il nome del filtro.
  • param bool $value - True per abilitare il filtro, false altrimenti.
  • return void

Esempio:

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

Impostazioni predefinite:

chiave tipo valore descrizione
session bool true Verifica la sessione creata dal driver session di Shieldon.
cookie bool false Verifica il cookie generato da JavaScript.
referer bool true Verifica HTTP_REFERER
frequency bool true Verifica l'impostazione time_unit_quota.

Il filtro Cookie è impostato su false di default, perché è necessario inserire il frammento JavaScript nelle pagine web. Il frammento creato da getJavascript() genererà un cookie tramite JavaScript.

Controlla getJavascript() per l'utilizzo.

disableFilters()

  • return void

Disabilita tutti i filtri anche se sono già stati configurati.

$kernel->disableFilters();

Trait IP

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

setIp($ip)

  • param string $ip - Un indirizzo IP.
  • return void

Imposta un indirizzo IP.

Esempio:

// Ecco un esempio di acquisizione del vero indirizzo IP dal CloudFlare.
$realIp = $_SERVER['HTTP_CF_CONNECTING_IP'];

// Se si utilizza un servizio CDN sul proprio sito web,
// assicurarsi di acquisire il vero indirizzo IP del visitatore, altrimenti gli utenti verranno bloccati.
$kernel->setIp($realIp);

getIp()

  • return string

Ottiene l'IP impostato corrente.

Esempio:

$ip = $kernel->getIp();

setRdns($rdns)

  • param string $rdns - Record DNS inverso per quell'indirizzo IP.
  • return void

Imposta un record RDNS per il controllo.

Esempio:

$kernel->setRdns('localhost');

getRdns()

  • return string

Ottiene il nome host risolto per l'IP.

$rdns = $kernel->getRdns();

Trait Messenger

Shieldon\Firewall\Kernel\MessengerTrait
  • setMessenger

setMessenger($instance)

  • param MessengerInterface $instance - L'istanza del messaggero.
  • return void

Esempio:

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

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

$kernel->setMessenger($telegramMessenger);

Trait Template

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

setDialog($settings)

  • param array $settings - Le impostazioni dell'interfaccia utente del dialogo.
  • return void

Personalizza l'interfaccia utente del dialogo.

Esempio:

$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

Risponde al risultato.

Esempio:

$response = $kernel->respond();

setTemplateDirectory($directory)

  • param array $directory - La directory in cui sono posizionati i file dei template.
  • return void

Imposta la directory dei template frontend. Puoi copiare questi file in una directory e modificarli per personalizzare l'aspetto dei dialoghi.

Esempio:

$kernel->setTemplateDirectory(YOUR_DIRECTORY_PATH);

getJavascript()

  • return string

Restituisce un frammento di codice JavaScript nelle tue pagine web.

Questo frammento genera un cookie sul browser del client, quindi controlliamo il cookie per identificare se il client è un robot o meno.

// Visualizza questa variabile nel tuo template di pagina.
$jsCode = $kernel->getJavascript();

Sessione

Shieldon\Firewall\Kernel\SessionTrait
  • limitSession
  • getSessionCount

limitSession($count, $period, $unique)

  • param int $count 1000 Il numero di utenti online. Se raggiunto, gli utenti saranno in coda.
  • param int $period 300 Il periodo di tempo in cui gli utenti possono navigare. (unità: secondi)
  • param bool $unique false Consenti solo una sessione per indirizzo IP.
  • return void

Limita le sessioni online.

Esempio:

$kernel->limitSession(100, 300);

getSessionCount()

  • return int

Restituisce il numero di persone online. Se è abilitato limitSession.

Esempio:

$count = $kernel->getSessionCount();