Shieldon\Firewall\Kernel
$ip
)string
$ip -
Einzelne IP-Adresse.void
Blockiert eine IP-Adresse.
Beispiel:
$kernel->ban('33.125.12.87');
string
Gibt die aktuelle URL zurück. Diese Methode entspricht $_SERVER['REQUEST_URI']
.
Beispiel:
echo $kernel->getCurrentUrl();
$type
)string
$type ""
managed | config | demovoid
Gibt Shieldon den Typ an, durch den Shieldon verwaltet wird. Diese Einstellung betrifft nur das Firewall-Panel.
Beispiel:
$kernel->managedBy('demo');
int
Führt den Überprüfungsprozess aus.
Antwortcode:
Konstante | Wert | Grund |
---|---|---|
RESPONSE_DENY |
0 | Dauerhaft blockiert. |
RESPONSE_ALLOW |
1 | Zugelassen. |
RESPONSE_TEMPORARILY_DENY |
2 | Vorübergehend blockiert und kann durch Lösen eines Captchas entsperrt werden. |
RESPONSE_LIMIT |
3 | Gestoppt aufgrund der Erreichung des Online-Sitzungslimits. |
Beispiel:
$result = $kernel->run();
$key
, $closure
)string
$key -
Der Identifikationsname der Closure-Funktion.Closure
$closure -
Die Closure-Funktion.void
Setzt eine Closure-Funktion.
Beispiel:
$kernel->setClosure('www_authenticate', function() use ($authHandler, $authenticateList) {
$authHandler->set($authenticateList);
$authHandler->check();
});
$uriPath
)string
$uriPath -
Der Pfadbestandteil einer URI.void
Setzt eine URL, die von der Absicherung ausgeschlossen werden soll.
Beispiel:
$kernel->exclude('/firewall/panel');
$urls
)array
$urls -
Die Sammlung von URLs.void
Setzt die URLs, die von der Absicherung ausgeschlossen werden sollen.
Beispiel:
$list = [
'/example/1',
'/wp-login.php',
];
$kernel->setExcludedUrls($list);
$logger
)ActionLogger
$logger -
Protokolliert Aktionen für Benutzer.void
Setzt einen Action-Log-Logger.
Beispiel:
$kernel->setLogger(
new \Shieldon\Firewall\Log\ActionLogger(
BOOTSTRAP_DIR . '/../tmp/shieldon'
)
);
$key
, $value
)string
$key -
Der Schlüsselname für die Eigenschaft.mixed
$value -
Der Wert des Schlüssels.void
Beispiel:
$kernel->setProperty('time_unit_quota', [
's' => 4,
'm' => 20,
'h' => 60,
'd' => 240,
]);
Die Erklärung der Einstellungen finden Sie hier.
$settings
)array
$settings -
Die Einstellungen.void
Beispiel:
$kernel->setProperties($settings);
$bool
)bool
$bool -
True, um den Strict-Modus zu aktivieren, False, um ihn zu deaktivieren.void
Beispiel:
$kernel->setStrict(true);
$ip
)string
$ip -
Eine IP-Adresse.void
Entsperrt eine IP-Adresse.
Beispiel:
$kernel->unban('33.33.33.33');
Shieldon\Firewall\Kernel\CaptchaTrait
$instance
)CaptchaInterface
$instance -
Die Captcha-Instanz.void
Setzt ein Captcha. Für detaillierte Verwendungen siehe Abschnitt Captcha.
$kernel->setCaptcha(
new \Shieldon\Firewall\Captcha\Recaptcha([
'key' => '6LfkOaUUAAAAAH-AlTz3hRQ25SK8kZKb2hDRSwz9',
'secret' => '6LfkOaUUAAAAAJddZ6k-1j4hZC1rOqYZ9gLm0WQh',
'version' => 'v2',
'lang' => 'en',
])
);
bool
Gibt das Ergebnis von Captchas zurück.
true
: Captcha erfolgreich gelöst, false
sonst.
Beispiel:
$result = $this->captchaResponsse();
void
Deaktiviert alle Captcha-Module. Diese Methode dient zum Unit-Testing-Zweck.
Shieldon\Firewall\Kernel\ComponentTrait
$instance
)ComponentProvider
$instance -
Die Komponenteninstanz.void
Setzt eine Komponente.
Beispiel:
$kernel->setComponent(
new \Shieldon\Firewall\Component\UserAgent()
);
string
$name -
Der Klassenname der Komponente.void
| ComponentProvider
Ruft eine Komponenteninstanz aus dem Komponentencontainer ab.
Beispiel:
$useragent = $kernel->getComponent('UserAgent');
void
Deaktiviert alle Komponenten, auch wenn sie bereits eingerichtet wurden.
Beispiel:
$kernel->disableComponents();
Shieldon\Firewall\Kernel\DriverTrait
$driver
)DriverProvider
$driver -
Abfrage von Daten aus dem gewählten Treiber.void
Beispiel:
$dbLocation = APPPATH . 'cache/shieldon.sqlite3';
$pdoInstance = new \PDO('sqlite:' . $dbLocation);
$kernel->setDriver(
new \Shieldon\Firewall\Driver\SqliteDriver($pdoInstance)
);
$channel
)string
$channel -
Gibt einen Kanal an.void
Beispiel:
$kernel->setChannel('web_project');
void
Deaktiviert den automatischen Aufbau der Datenbank.
Beispiel:
$kernel->disableDbBuilder();
Shieldon\Firewall\Kernel\FilterTrait
$settings
)array
$settings -
Filtereinstellungen.void
$kernel->setFilters([
'session' => true,
'cookie' => true,
'referer' => true,
'frequency' => true,
]);
$filterName
, $value
)string
$filterName -
Der Name des Filters.bool
$value -
True, um den Filter zu aktivieren, sonst false.void
Beispiel:
$kernel->setFilter('session', false);
$kernel->setFilter('cookie', false);
$kernel->setFilter('referer', true);
$kernel->setFilter('frequency', false);
Standardmäßige Einstellungen:
Schlüssel | Typ | Wert | Beschreibung |
---|---|---|---|
session | bool | true | Überprüft die von Shieldon erstellte Sitzung. |
cookie | bool | false | Überprüft Cookies, die von JavaScript generiert wurden. |
referer | bool | true | Überprüft HTTP_REFERER . |
frequency | bool | true | Überprüft die Einstellung time_unit_quota . |
Der Cookie-Filter ist standardmäßig auf false
eingestellt, da Sie den JavaScript-Snippet auf Ihren Webseiten ausgeben müssen. Der durch getJavascript()
generierte Snippet erstellt ein Cookie über JavaScript.
Lesen Sie getJavascript()
für die Verwendung.
void
Deaktiviert alle Filter, auch wenn sie bereits eingerichtet wurden.
$kernel->disableFilters();
Shieldon\Firewall\IpTrait
$ip
)string
$ip -
Eine IP-Adresse.void
Setzt eine IP-Adresse.
Beispiel:
// Hier ist ein Beispiel, um die echte Besucher-IP von CloudFlare zu erfassen.
$realIp = $_SERVER['HTTP_CF_CONNECTING_IP'];
// Wenn Sie einen CDN-Service auf Ihrer Website verwenden,
// stellen Sie sicher, dass Sie die echte Besucher-IP erfassen, sonst werden Benutzer blockiert.
$kernel->setIp($realIp);
string
Gibt die aktuell festgelegte IP zurück.
Beispiel:
$ip = $kernel->getIp();
$rdns
)string
$rdns -
Reverse DNS-Eintrag für diese IP-Adresse.void
Setzt einen Reverse-DNS-Eintrag für die Überprüfung.
Beispiel:
$kernel->setRdns('localhost');
string
Gibt den aufgelösten Hostnamen der IP zurück.
$rdns = $kernel->getRdns();
Shieldon\Firewall\Kernel\MessengerTrait
$instance
)MessengerInterface
$instance -
Die Messenger-Instanz.void
Beispiel:
$apiKey = '981441296:AAGCcgv_NETMdWQCBTaMOk_yoMfax5EV7YQ';
$channel = '@your_channel';
$telegramMessenger = new \Messenger\Telegram($apiKey, $channel);
$kernel->setMessenger($telegramMessenger);
Shieldon\Firewall\Kernel\TemplateTrait
$settings
)array
$settings -
Die Einstellungen für das Dialog-Benutzeroberfläche.void
Passen Sie die Dialog-Benutzeroberfläche an.
Beispiel:
$settings = [
'lang' => 'en',
'background_image' => '',
'bg_color' => '#ffffff',
'header_bg_color' => '#212531',
'header_color' => '#ffffff',
'shadow_opacity' => '0.2',
];
$kernel->setDialog($settings);
ResponseInterface
Antworten Sie mit dem Ergebnis.
Beispiel:
$response = $kernel->respond();
$directory
)array
$directory -
Das Verzeichnis, in dem die Vorlagendateien abgelegt sind.void
Legen Sie das Verzeichnis für das Frontend-Template fest. Sie können diese Dateien in ein Verzeichnis kopieren und sie für die Anpassung des Aussehens der Dialoge bearbeiten.
Beispiel:
$kernel->setTemplateDirectory(YOUR_DIRECTORY_PATH);
string
Geben Sie ein JavaScript-Snippet in Ihren Webseiten aus.
Dieses Snippet erstellt ein Cookie im Browser des Clients, dann überprüfen wir das Cookie, um zu identifizieren, ob der Client ein Bot ist oder nicht.
// Geben Sie diese Variable in Ihrem Seitenmodell aus.
$jsCode = $kernel->getJavascript();
Shieldon\Firewall\Kernel\SessionTrait
$count
, $period
, $unique
)int
$count 1000
Die Anzahl der Benutzer online. Wenn erreicht, werden Benutzer in der Warteschlange stehen.int
$period 300
Der Zeitraum, in dem Benutzer browsen können. (Einheit: Sekunde)bool
$unique false
Erlaubt nur eine Sitzung pro IP-Adresse.void
Begrenzt die Online-Sitzungen.
Beispiel:
$kernel->limitSession(100, 300);
int
Gibt die Anzahl der Online-Besucher zurück. Wenn limitSession aktiviert ist.
Beispiel:
$count = $kernel->getSessionCount();