Die Shieldon Firewall bietet eine umfangreiche Auswahl an Konfigurationen, mit denen du ihr Verhalten anpassen kannst. Im Folgenden findest du eine Auflistung der verfügbaren Eigenschaften, die konfiguriert werden können:
Du kannst die Einstellungen bei der Initialisierung der Shieldon-Instanz anpassen oder später die APIs setProperty
oder setProperties
verwenden.
Initialisierung
$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);
Schlüssel | Typ | Wert |
---|---|---|
time_unit_quota | array | ['s' => 2, 'm' => 10, 'h' => 30, 'd' => 60] |
time_reset_limit | integer | 3600 |
interval_check_referer | integer | 5 |
interval_check_session | integer | 30 |
limit_unusual_behavior | array | ['cookie' => 5, 'session' => 5, 'referer' => 10] |
cookie_name | string | ssjd |
cookie_domain | string | " |
Diese Einstellung ermöglicht es dir, die Seitenansichtsgrenzen für Benutzer auf deiner Website basierend auf einer bestimmten Zeiteinheit festzulegen. Die Schlüssel des Arrays sind 's' (Sekunde), 'm' (Minute), 'h' (Stunde) und 'd' (Tag), wobei jeder Schlüssel dem Seitenansichtslimit pro Benutzer für diese Zeiteinheit entspricht. Der Standardwert lautet ['s' => 2, 'm' => 10, 'h' => 30, 'd' => 60]
Schlüssel | Wert | Beschreibung |
---|---|---|
s | Integer | Seitenansichten pro Besucher pro Sekunde |
m | Integer | Seitenansichten pro Besucher pro Minute |
h | Integer | Seitenansichten pro Besucher pro Stunde |
d | Integer | Seitenansichten pro Besucher pro Tag |
Wenn du einen Benutzer beispielsweise auf maximal 100 Seiten
pro Tag beschränken möchtest, setze s
, m
und h
auf eine sehr hohe Zahl und d
auf 100
.
Beachte, dass Benutzer, die das Limit erreichen, vorübergehend blockiert werden und durch Lösen eines Captchas wieder freigeschaltet werden können. Setze die Werte also nicht zu großzügig, da dies sonst keinen Sinn macht, diese Bibliothek zu verwenden.
time_reset_limit
Dies ist die Zeit in Sekunden, nach der die Anzahl der markierten Filter zurückgesetzt wird. Der Standardwert beträgt 3600 (1 Stunde).
interval_check_referer
Ähnlich wie interval_check_referer
legt diese Eigenschaft die Verzögerung in Sekunden fest, bevor Shieldon den SESSION
-Cookie eines Benutzers überprüft. Der Standardwert beträgt 30
Sekunden.
Wenn ein Benutzer zum ersten Mal deine Website besucht, indem er die URL im Browser eingibt, ist das HTTP_REFERER
leer. Nach interval_check_referer
Sekunden beginnt Shieldon, den HTTP_REFERER
zu überprüfen.
Du kannst diesen Wert ignorieren.
interval_check_session
Wenn ein Benutzer zum ersten Mal deine Website besucht, beginnt Shieldon nach interval_check_session
Sekunden damit, den SESSION
-Cookie zu überprüfen.
limit_unusual_behavior
Diese Einstellung ermöglicht es dir, die Grenzwerte für das Markieren eines Benutzers als ungewöhnliches Verhalten basierend auf bestimmten Bedingungen festzulegen.
Der Standardwert lautet ['cookie' => 5, 'session' => 5, 'referer' => 10]
.
Setze die Grenzwerte und Quoten für das Markieren von Benutzern auf deiner Website als ungewöhnliches Verhalten.
Schlüssel | Wert | Beschreibung |
---|---|---|
cookie | Integer | Über JavaScript generiertes Cookie. |
session | Integer | PHP-Session |
referer | Integer | HTTP_REFERER |
cookie_name
Diese Eigenschaft wird verwendet, um den Namen des von Shieldon verwendeten Cookies anzugeben. Der Standardwert lautet ssjd
.
cookie_domain
Diese Eigenschaft definiert die Domäne, für die das Cookie eingeschränkt ist. Standardmäßig ist das Cookie für alle Subdomains auf dem Server verfügbar.
deny_attempt_enable
Wenn du diese Option aktivierst, zeichnet Shieldon jeden aufeinanderfolgenden CAPTCHA-Fehler auf. Sobald ein Benutzer das angegebene Limit erreicht, klassifiziert Shieldon ihn als blockierte IP in der Regel-Tabelle, was bis zum Beginn des neuen Datenzyklus anhält.
Auch wenn Benutzer blockiert sind, können sie immer noch auf die Warnseite zugreifen. Wenn sie jedoch kontinuierlich das CAPTCHA nicht lösen können, ist es sehr wahrscheinlich, dass sie keine Menschen sind. Shieldon fügt sie daher zur Blockierliste der System-Firewall hinzu und sperrt sie dauerhaft.
Standardmäßig:
'deny_attempt_enable' => [
'data_circle' => false,
'system_firewall' => false,
],
record_attempt_detection_period
Um zu verhindern, dass Social-Media-Bots wie Facebook, Line und andere, die Schnappschüsse deiner Webseiten erstellen, zur iptables-Firewall hinzugefügt werden, solltest du die untenstehenden Werte an deine Bedürfnisse anpassen. (Einheit: Sekunden)
Standardmäßig:
'record_attempt_detection_period' => 5,
reset_attempt_counter
Dieser Parameter bestimmt, wie lange (in Sekunden) es dauert, bis der Versuchscounter zurückgesetzt wird. In diesem Fall wird der Counter alle 30 Minuten zurückgesetzt.
Standardmäßig:
'reset_attempt_counter' => 1800,
iptables_watching_folder
Dieser Parameter ist das Verzeichnis, das vom iptables-Dienst überwacht wird und Befehle von der Shieldon Firewall empfängt. In diesem Fall wird das temporäre Verzeichnis '/tmp/'
überwacht.
Für alle hier nicht erwähnten Eigenschaften kannst du auf die Funktion get_default_properties()
in der Klasse Shieldon\Firewall\Helpers
verweisen.
/**
* Die Standardkonfigurationen des Shieldon-Kerns.
*
* @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/',
];
}
Hinweis: Du kannst diese Eigenschaften entweder während der Initialisierung der Shieldon-Instanz oder später mithilfe der APIs setProperty
oder setProperties
festlegen.