Shieldon\Firewall\Kernel
$ip
)string
$ip -
Indirizzo IP singolo.void
Blocca un indirizzo IP.
Esempio:
$kernel->ban('33.125.12.87');
string
Restituisce l'URL corrente. Questo metodo è equivalente a $_SERVER['REQUEST_URI']
.
Esempio:
echo $kernel->getCurrentUrl();
$type
)string
$type ""
managed | config | demovoid
Indica a Shieldon il tipo di gestione del Firewall. Questa impostazione influisce solo sul Pannello Firewall.
Esempio:
$kernel->managedBy('demo');
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();
$key
, $closure
)string
$key -
Il nome di identificazione della chiusura.Closure
$closure -
La funzione di chiusura.void
Imposta una funzione di chiusura.
Esempio:
$kernel->setClosure('www_authenticate', function() use ($authHandler, $authenticateList) {
$authHandler->set($authenticateList);
$authHandler->check();
});
$uriPath
)string
$uriPath -
Il componente di percorso di un URI.void
Imposta un URL che si desidera escludere dalla protezione.
Esempio:
$kernel->exclude('/firewall/panel');
$urls
)array
$urls -
La collezione di URL.void
Imposta gli URL che si desidera escludere dalla protezione.
Esempio:
$list = [
'/example/1',
'/wp-login.php',
];
$kernel->setExcludedUrls($list);
$logger
)ActionLogger
$logger -
Registra i log delle azioni per gli utenti.void
Imposta un logger di log delle azioni.
Esempio:
$kernel->setLogger(
new \Shieldon\Firewall\Log\ActionLogger(
BOOTSTRAP_DIR . '/../tmp/shieldon'
)
);
$key
, $value
)string
$key -
Il nome della chiave per la proprietà.mixed
$value -
Il valore della chiave.void
Esempio:
$kernel->setProperty('time_unit_quota', [
's' => 4,
'm' => 20,
'h' => 60,
'd' => 240,
]);
La spiegazione delle impostazioni si trova qui.
$settings
)array
$settings -
Le impostazioni.void
Esempio:
$kernel->setProperties($settings);
$bool
)bool
$bool -
Imposta su true per abilitare la modalità rigorosa, false per disabilitarla.void
Esempio:
$kernel->setStrict(true);
$ip
)string
$ip -
Un indirizzo IP.void
Sblocca un indirizzo IP.
Esempio:
$kernel->unban('33.33.33.33');
Shieldon\Firewall\Kernel\CaptchaTrait
$instance
)CaptchaInterface
$instance -
L'istanza Captcha.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',
])
);
bool
Restituisce il risultato dai Captcha.
true
: Captcha risolto con successo, false
altrimenti.
Esempio:
$result = $this->captchaResponsse();
void
Disabilita tutti i moduli Captcha. Questo metodo è per scopi di test modulare.
Shieldon\Firewall\Kernel\ComponentTrait
$instance
)ComponentProvider
$instance -
L'istanza del componente.void
Imposta un componente.
Esempio:
$kernel->setComponent(
new \Shieldon\Firewall\Component\UserAgent()
);
string
$name -
Il nome della classe del componente.void
| ComponentProvider
Ottiene un'istanza del componente dal contenitore dei componenti.
Esempio:
$useragent = $kernel->getComponent('UserAgent');
void
Disabilita tutti i componenti anche se sono già stati configurati.
Esempio:
$kernel->disableComponents();
Shieldon\Firewall\Kernel\DriverTrait
$driver
)DriverProvider
$driver -
Query dati dal driver scelto.void
Esempio:
$dbLocation = APPPATH . 'cache/shieldon.sqlite3';
$pdoInstance = new \PDO('sqlite:' . $dbLocation);
$kernel->setDriver(
new \Shieldon\Firewall\Driver\SqliteDriver($pdoInstance)
);
$channel
)string
$channel -
Specifica un canale.void
Esempio:
$kernel->setChannel('web_project');
void
Disabilita la creazione automatica del database.
Esempio:
$kernel->disableDbBuilder();
Shieldon\Firewall\Kernel\FilterTrait
$settings
)array
$settings -
Impostazioni del filtro.void
$kernel->setFilters([
'session' => true,
'cookie' => true,
'referer' => true,
'frequency' => true,
]);
$filterName
, $value
)string
$filterName -
Il nome del filtro.bool
$value -
True per abilitare il filtro, false altrimenti.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.
void
Disabilita tutti i filtri anche se sono già stati configurati.
$kernel->disableFilters();
Shieldon\Firewall\IpTrait
$ip
)string
$ip -
Un indirizzo IP.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);
string
Ottiene l'IP impostato corrente.
Esempio:
$ip = $kernel->getIp();
$rdns
)string
$rdns -
Record DNS inverso per quell'indirizzo IP.void
Imposta un record RDNS per il controllo.
Esempio:
$kernel->setRdns('localhost');
string
Ottiene il nome host risolto per l'IP.
$rdns = $kernel->getRdns();
Shieldon\Firewall\Kernel\MessengerTrait
$instance
)MessengerInterface
$instance -
L'istanza del messaggero.void
Esempio:
$apiKey = '981441296:AAGCcgv_NETMdWQCBTaMOk_yoMfax5EV7YQ';
$channel = '@your_channel';
$telegramMessenger = new \Messenger\Telegram($apiKey, $channel);
$kernel->setMessenger($telegramMessenger);
Shieldon\Firewall\Kernel\TemplateTrait
$settings
)array
$settings -
Le impostazioni dell'interfaccia utente del dialogo.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);
ResponseInterface
Risponde al risultato.
Esempio:
$response = $kernel->respond();
$directory
)array
$directory -
La directory in cui sono posizionati i file dei template.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);
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();
Shieldon\Firewall\Kernel\SessionTrait
$count
, $period
, $unique
)int
$count 1000
Il numero di utenti online. Se raggiunto, gli utenti saranno in coda.int
$period 300
Il periodo di tempo in cui gli utenti possono navigare. (unità: secondi)bool
$unique false
Consenti solo una sessione per indirizzo IP.void
Limita le sessioni online.
Esempio:
$kernel->limitSession(100, 300);
int
Restituisce il numero di persone online. Se è abilitato limitSession
.
Esempio:
$count = $kernel->getSessionCount();