Sicherheitsmaßnahmen

Die Sicherheit unserer Anwendungen und Systeme steht bei uns an erster Stelle. In diesem Artikel bieten wir einen detaillierten Einblick in die verschiedenen Sicherheitsvorkehrungen, die derzeit in Shopware implementiert sind. Eine gründliche Kenntnis dieser Maßnahmen ist entscheidend, um die Integrität, Vertraulichkeit und Verfügbarkeit unserer Dienste zu gewährleisten. Im Folgenden findest Du eine Zusammenfassung der aktuellen Sicherheitsmaßnahmen sowie die notwendigen Details.  

Rate limiter

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!

Shopware 6 bietet standardmäßig bestimmte Rate-Limits, die das Risiko von Brute-Force-Angriffen auf Seiten wie Anmeldung oder Passwortrücksetzung verringern. Die Konfiguration dieser Rate-Limiter erfolgt über die Shopware 6 Bundle-Konfiguration in der Datei "shopware.yml", wo verschiedene Limiter für spezifische Aktionen definiert werden können.
Welche das sind und wie diese konfiguriert werden können kannst Du hier einsehen. 

Storefront IP Whitelisting

In Shopware kannst Du vorübergehend Verkaufskanäle deaktivieren, um vorübergehend den Zugriff für Besucher und die API zu unterbinden, und auch den Wartungsmodus aktivieren, der lediglich eine Wartungsseite anzeigt. Bei Verwendung eines Proxy-Servers ist es wichtig, die Proxy-IP als vertrauenswürdigen Proxy in der .env-Konfigurationsdatei oder den PHP-Einstellungen zu hinterlegen, um die IP-Whitelist-Funktion korrekt zu nutzen.
Weitere Informationen dazu findest Du hier.

Verhinderung von XSS durch HTML Sanitizer

Mit der Shopware Version 6.5 wurde ein HTML Sanitzer implementiert. Dieser Sanitizer verbessert Sicherheit, Zuverlässigkeit und Benutzerfreundlichkeit des Editors, indem unsicherer HTML-Code entfernt wird. Er säubert auch Styles und Attribute für konsistente und korrekte Darstellung des Codes unabhängig von Plattform und Browser.  
Weitere Informationen dazu findest Du hier

SQL-Injektion verhindern

Die Nutzung von Nutzereingaben zur Kommunikation mit einer Datenbank birgt Sicherheitsrisiken, da Datenbanken mächtige Befehle zulassen, die nicht von jedem Website-Nutzer ausgeführt werden sollten, und die Daten in der Datenbank vertrauliche Informationen enthalten könnten. Ein besonders gefährliches Sicherheitsproblem in Bezug auf Datenbanken ist die Möglichkeit von SQL-Injektionen, bei denen ein Angreifer neue SQL-Anweisungen ausführen oder bestehende ändern kann, um auf unerlaubte Informationen zuzugreifen. Doctrine DBAL und ORM können solche Angriffe nicht verhindern, wenn der Entwickler unvorsichtig ist, und es ist entscheidend, die Probleme der SQL-Injektion zu verstehen und entsprechende Maßnahmen zu ergreifen. Empfohlen wird die Verwendung von Prepared Statements, um Nutzereingaben in SQL- oder DQL-Abfragen sicher zu verwenden, anstelle von gefährlicher String-Konkatenation oder Quoting/Escaping-Werten.
Weitere Informationen dazu findest Du hier

API-fähige Felder, Schreibschutz für Entitäten

Bisher wurde ein Schutzmuster auf Entitäten angewendet, um festzulegen, welche Felder über die APIs verfügbar sind. Standardmäßig sind alle Felder für die /admin API aktiviert, während für die /store-api und /sales-channel-api spezifisch festgelegt werden kann, welche Felder sichtbar sein sollen. Dies wird durch Anpassung der Flags ermöglicht, wobei das Hinzufügen oder Entfernen von Flags die API-Sichtbarkeit der Felder beeinflusst.  
Weitere Informationen dazu findest Du hier.  
Eine Referenz aller verfügbaren Flags findest Du hier

SameSite Cookies

Die SameSite-Konfiguration im Symfony FrameworkBundle ersetzt die sw_csrf Twig-Funktion und regelt standardmäßig die Cookie-Sicherheit in modernen Browsern. Die Einstellungen für Cookie-Sicherheit und SameSite können in der framework.yaml-Datei angepasst werden, wobei bei Bedarf die SameSite-Schutzfunktion deaktiviert werden kann.  
Weitere Informationen dazu findest Du hier

Einhaltung der DSGVO

Die europäische Datenschutz-Grundverordnung (DSGVO) trat am 25. Mai 2018 in Kraft, ersetzte nationale Datenschutzregelungen und betrifft Unternehmen in der EU, die mit personenbezogenen Daten wie Namen, Adressen und Bankdaten arbeiten. Ziel der DSGVO ist es, eine einheitliche Verarbeitung von personenbezogenen Daten zu fördern, um Transparenz und einen erweiterten Schutz der Verbraucherdaten zu gewährleisten.   
Dieser Doku-Artikel gibt eine Zusammenfassung zur Verarbeitung personenbezogener Daten in Shopware 6, um die Erstellung von Dokumentationen und Datenschutzerklärungen für Shopware-Instanzen zu erleichtern.

Shopware 6 Sicherheits-Plugin

Das Security Plugin bietet eine alternative Möglichkeit, alle sicherheitsrelevanten Verbesserungen zu erhalten, ohne dass ein Upgrade auf die neueste Version der Shopware-Plattform erforderlich ist.
Das Plugin findest Du hier
Weitere Informationen dazu findest Du hier

Captcha

In Shopware kannst Du entscheiden, welche Captchas in Deiner Registrierung und im Shop genutzt werden sollen, um sicher zu stellen, dass es sich bei dem Benutzer um einen Mensch handelt und nicht um einen Bot oder ein Script. Du kannst dich hierbei auf eine Captcha Lösung verlassen oder mehrere auswählen, die angewandt werden. 
Weitere Informationen dazu findest Du hier

War dieser Artikel hilfreich?