HTML Sanitizer

Bitte beachte, dass sich dieser Artikel nur an die Nutzer eines self-hosted Shops richtet. Für Cloud Shops besteht zum jetzigen Zeitpunkt noch keine Möglichkeit der Umsetzung.

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.

Wird zum Beispiel der tag img hinzugefügt, so wird dieser nach wenigen Sekunden automatisch vom Editor entfernt und es erscheint ein zusätzlicher Hinweis, dass potenziell gefährlicher Code bereinigt wurde.

Whitelisting

Für alle weiteren Schritte ist ein Grundverständnis für YAML und dessen Syntax notwendig.

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!

Durch einen Workaround bzw. eine Anpassung der Datei z-shopware.yaml ist es möglich, den tag img zum erlaubten Code hinzuzufügen.

Die z-shopware.yaml befindet sich auf dem Server, auf welchem Shopware installiert wurde, unterhalb von config/packages/. Standardmäßig existiert diese Datei nicht. Eine einfache Kopie von der shopware.yaml im selben Verzeichnis löst dieses Hindernis.

In der kopierten shopware.yaml (z-shopware.yaml), innerhalb des shopware: key wird ein weiterer key namens html_sanitizer: benötigt. Innerhalb des keys werden alle weiteren Werte und Wildcards hinzugefügt.

In diesem Beispiel wird der img tag, sowie die CSS-Attribute srcalt und style zur Whitelist hinzugefügt:  

shopware:
    html_sanitizer:
        sets:
            -   name: basic
                tags: [ "img" ]
                attributes: [ "src", "alt", "style" ]
                options:
                    - key: HTML.Trusted
                      value: true
                    - key: CSS.Trusted
                      value: true

Bitte achte auf die YAML Syntax und vor allem auf die korrekte Nutzung von Leerzeichen.

Anschließend muss der Shop-Cache geleert werden, damit die Änderung wirksam wird.

Deaktivieren des HTML Sanitizer

Bei Bedarf ist es auch möglich den HTML Sanitizer komplett zu deaktivieren. Hiervon wird stark abgeraten, da sonst folgende Sicherheitsrisiken bestehen.

  • Cross-Site Scripting (XSS)-Angriffe: HTML-Sanitizer helfen dabei, XSS-Angriffe zu verhindern, bei denen schädliche Skripte in den Code einer Website eingeschleust werden. Ohne ordnungsgemäßes sanitizing könnte ein Angreifer schädliche Skripte in den Shop einschleusen, was potenziell die Sicherheit von Benutzerdaten gefährdet, sensible Informationen stiehlt oder Malware verbreitet.

  • Datenintegrität und Vertraulichkeit: HTML-Sanitizer helfen dabei, die Integrität und Vertraulichkeit der von Benutzern eingegebenen Daten zu gewährleisten. Ohne sanitizing können Angreifer Schwachstellen ausnutzen, um Benutzerdaten zu modifizieren oder zu manipulieren, was zu potenziellen Datenschutzverletzungen, unbefugtem Zugriff oder Manipulation sensibler Informationen führen kann.

  • Reputation und Kundentrust: Wenn ein Shop aufgrund fehlendes sanitizing anfällig für Sicherheitsrisiken wird, kann dies den Ruf des Shops schädigen und das Vertrauen der Kunden untergraben. Nachrichten über Sicherheitsverletzungen, kompromittierte Benutzerdaten oder häufige Angriffe können Kunden davon abhalten, Einkäufe zu tätigen oder ihre persönlichen Informationen zu teilen, was sich negativ auf den Erfolg des Shops auswirkt.

  • Rechtliche und Compliance-Probleme: Unternehmen sind rechtlich verpflichtet, Kundendaten zu schützen und angemessene Sicherheitsmaßnahmen zu treffen. Das Fehlen eines ordnungsgemäßen HTML Sanitizer kann zu rechtlichen und Compliance-Problemen führen, einschließlich Geldstrafen, Klagen oder anderen rechtlichen Konsequenzen, wenn es zu einem Datenverstoß oder einer Verletzung des Datenschutzes kommt.

  • Betriebsstörungen und finanzielle Verluste: Erfolgreiche Angriffe auf einen Shop können zu Betriebsstörungen, Ausfallzeiten und finanziellen Verlusten führen. Die Behebung der Folgen eines Sicherheitsverstoßes, wie die Untersuchung des Vorfalls, die Implementierung von Korrekturen, die Benachrichtigung betroffener Kunden und die Wiederherstellung der Systeme, kann kostspielig und zeitaufwändig sein.

Falls Du trotz der o.g Warnungen den Sanitizer deaktivieren möchtest, kannst Du dies ebenfalls über die z-shopware.yaml durchführen. Übernehme hierzu einfach den folgenden Code: 

shopware:
    html_sanitizer:
        enabled: false

War dieser Artikel hilfreich?