Konfiguration

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);

Standardwerte

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 "

Parameter

time_unit_quota

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]

  • Array
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.

  • Array
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.

Weitere Eigenschaften

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.