Flooding Prävention
In diesem Artikel erklären wir, wie Dein System vor Flooding geschützt werden kann. Flooding wird dadurch verursacht, dass eine hohe Anzahl von Anfragen an den Server gesendet wird, so dass der Server Schwierigkeiten hat, die Last zu bewältigen. Das System schränkt diese Anfragen nun nach den folgenden Regeln ein.
Login
Registrierte Kunden, Gastbenutzer und Admin User können bis zu 10 Mal versuchen, sich anzumelden, bevor sie vom System verzögert werden.
- Nach 10 fehlgeschlagenen Anmeldeversuchen muss der Kunde 10 Sekunden warten, bevor er erneut versuchen kann, sich anzumelden.
- Nach 15 fehlgeschlagenen Anmeldeversuchen sind es 30 Sekunden.
- Nach 20 fehlgeschlagenen Anmeldeversuchen sind es 60 Sekunden.
Nach einem erfolgreichen Login oder nach 24 Stunden ohne fehlgeschlagenen Login wird das Limit zurückgesetzt.
Kontaktformular
Der Kunde kann 3 Kontaktformulare hintereinander abschicken, bevor er vom System verzögert wird.
- Nach dem Absenden von 3 Kontaktformularen muss der Kunde 30 Sekunden warten, bevor er das nächste Formular absenden kann.
- Nach dem Absenden von 5 Kontaktformularen sind es 60 Sekunden.
- Nach dem Absenden von 10 Kontaktformularen sind es 90 Sekunden.
Nach 24 Stunden wird das Limit zurückgesetzt.
Passwort wiederherstellen
Registrierte Kunden, Gastbenutzer und Admin User haben 3 Versuche, ihr Passwort zurückzusetzen, bevor sie vom System verzögert werden.
- nach 3 fehlgeschlagenen Anmeldeversuchen muss der Benutzer 30 Sekunden warten, bevor er sich erneut anmelden kann.
- Nach 5 fehlgeschlagenen Anmeldeversuchen sind es 60 Sekunden.
- Nach 10 fehlgeschlagenen Anmeldeversuchen sind es 90 Sekunden.
Nach 24 Stunden wird das Limit zurückgesetzt.
Storefront Ansicht

Konfiguration
Im Admin gibt es keine Konfiguration, um Änderungen vorzunehmen, muss man die folgende Core Datei /framework/resources/config/packages/shopware.yaml in das Stammverzeichnis des Shops unter config/packages/shopware.yaml kopieren, nun kann man die Datei bearbeiten, um eine Funktion zu aktivieren/deaktivieren.
- login: Der Login in der Storefront für registrierte Kunden.
- guest_login: Der Login in der Storefront für Gastbenutzer.
- oauth: Der Login im Admin Bereich.
- reset_password: Passwort wiederherstellen in der Storefront.
- user_recovery: Passwort wiederherstellen im Admin Bereich.
- contact_form: Das Kontaktformular.
Du kannst eine Funktion deaktivieren, indem Du die entsprechende Zeile von enabled: true auf enabled: false änderst.
Du findest die Konfiguration in der shopware.yaml, so sieht sie aus:
shopware:
api:
max_limit: 100
api_browser:
auth_required: true
store:
context_lifetime: 'P1D' # 1 day interval, see also https://www.php.net/manual/en/dateinterval.construct.php#refsect1-dateinterval.construct-parameters
rate_limiter:
login:
enabled: true
policy: 'time_backoff'
reset: '24 hours' # reset limit after this time if no more requests failed
limits:
- limit: 10
interval: '10 seconds'
- limit: 15
interval: '30 seconds'
- limit: 20
interval: '60 seconds'
guest_login:
enabled: true
policy: 'time_backoff'
reset: '24 hours'
limits:
- limit: 10
interval: '10 seconds'
- limit: 15
interval: '30 seconds'
- limit: 20
interval: '60 seconds'
oauth:
enabled: true
policy: 'time_backoff'
reset: '24 hours'
limits:
- limit: 10
interval: '10 seconds'
- limit: 15
interval: '30 seconds'
- limit: 20
interval: '60 seconds'
reset_password:
enabled: true
policy: 'time_backoff'
reset: '24 hours'
limits:
- limit: 3
interval: '30 seconds'
- limit: 5
interval: '60 seconds'
- limit: 10
interval: '90 seconds'
user_recovery:
enabled: true
policy: 'time_backoff'
reset: '24 hours'
limits:
- limit: 3
interval: '30 seconds'
- limit: 5
interval: '60 seconds'
- limit: 10
interval: '90 seconds'
contact_form:
enabled: true
policy: 'time_backoff'
reset: '24 hours'
limits:
- limit: 3
interval: '30 seconds'
- limit: 5
interval: '60 seconds'
- limit: 10
interval: '90 seconds'