SVG XSS Protection

In dem Shopware Security Update 10/2021 wird auf eine mögliches Cross Site Scripting (XSS) Sicherheitslücke auf Basis von SVG-Grafiken hingewiesen. Werden SVG-Grafiken von Drittanbietern in dem eigenen Online-Shop geladen, können die SVG-Grafiken manipuliert werden, sodass möglicher Schadcode ausgeführt werden kann.


Beim Einsatz des creoline CDN werden SVG-Grafiken automatisch mit dem notwendigen Content-Security-Policy Header ausgeliefert, sodass Cross Site Scripting (XSS) innerhalb der SVG-Grafik unterbunden wird.



CDN Beispiel Request:

GET https://assets.cstatic.io/img/creoline-logo.svg


Response:

Content-Type    image/svg+xml
Content-Length  3087
Server  creoline
Cache-Control   max-age=31536000, public

[..]

Content-Security-Policy script-src 'none'
X-Creoline-Information  https://go.creoline.de/svg-xss

[..]

x-edge-pop  FRANKFURT
x-cache HIT


Alle Requests vom Content-Type image/svg oder image/svg+xml werden automatisch um den Content-Security-Policy Header ergänzt, sodass Ihr Online-Shop automatisch geschützt wird.



Zusätzliche Maßnahmen

Sofern Sie SVG-Grafiken unabhängig von dem creoline CDN auf Ihrem Internetauftritt ausliefern, sollte zusätzlich der Content-Security-Policy Header für alle SVG-Dateien gesetzt werden.


Apache-Webserver


# .htaccess

<IfModule mod_headers.c>
    <FilesMatch "\.(?i:svg)$">
        Header set Content-Security-Policy "script-src 'none'"
    </FilesMatch>
</IfModule>


nginx-Webserver

# nginx.conf (/etc/nginx/conf.d/*.conf)

location ~* ^.+\.svg$ {
    add_header Content-Security-Policy "script-src 'none'";
}