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.
Registrierte Kunden, Gastbenutzer und Admin User können bis zu 10 Mal versuchen, sich anzumelden, bevor sie vom System verzögert werden.
Nach einem erfolgreichen Login oder nach 24 Stunden ohne fehlgeschlagenen Login wird das Limit zurückgesetzt.
Der Kunde kann 3 Kontaktformulare hintereinander abschicken, bevor er vom System verzögert wird.
Nach 24 Stunden wird das Limit zurückgesetzt.
Registrierte Kunden, Gastbenutzer und Admin User haben 3 Versuche, ihr Passwort zurückzusetzen, bevor sie vom System verzögert werden.
Nach 24 Stunden wird das Limit zurückgesetzt.
Bei allen neuen Shopware-Projekten findet sich in der Installation unter config/packages/ nur noch eine lock.yaml Datei. Dies kann auch der Fall sein, wenn du ein Update durchgeführt hast und die .yaml Dateien unter config/packages/ im Standard waren.
Sollte dies bei dir der Fall sein, musst du eine neue shopware.yaml Datei erstellen und hier die Anpassungen einfügen!
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.
reset_password: Passwort wiederherstellen in der Storefront.
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:
Nach der Anpassung muss in der Konsole php bin/console cache:clear
ausgeführt werden, damit die Änderungen wirksam werden.
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'