23. April 2020, 22:15

Gitea CSP

Die eigene gitea Instanz - Teil V

So weiter gehts in Sachen gitea: Hier die CSP in der vhost Config des Apache Reverse hinterlegt:

Header add Content-Security-Policy "default-src 'self' 'unsafe-eval' 'unsafe-inline'  
data: 'self' *.domain.de; worker-src 'self' *.domain.de;  
frame-ancestors 'self' *.domain.de;  
img-src 'self' data: 'self' *.domain.de; object-src 'self';  
style-src 'self' 'unsafe-inline' *.domain.de"

Ja mir ist bewusst, daß mit eval und inline zwei sehr mächtige Funktionen erlaubt sind. Diese werden aber auch für einige Bereiche und Funktionen (z.B. die Heatmaps unter Aktivitäten) benötigt. Wer einen nginx hat möge sich diese CSP bitte anpassen. Selbstverständlich ist domain.de nur ein Platzhalter für die eigene Domain.

Warum eine CSP?

Damit keine 3rd Party Ressourcen geladen werden können. Hauptsächlich sind mir gestern Markdown Texte und Wiki-Dokumente aufgefallen, wo Tracker in Form von solchen Badges verlinkt wurden.

Badges sind Tracker

Klar, daß mit solchen Badges CI und/oder Commitments und/oder Counter für etwas betreiben werden sollen. Doch geschieht das meiner Meinung nach komplett ohne Rechtsgrundlage und Consent. Und auch der Sinn sollte hinterfragt werden, wenn einem z.B. die aktuelle Anzahl von Chat-Teilnehmern oder die Anzahl der Releases in einem Projekt README angezeigt werden.

Das Schlimme dabei: Anders wie bei einer Website mit einem Impressum und Datenschutzhinweisen weiß niemand wo und in welchem Kontext etwas angezeigt wird. Das kann die Vorschau im Editor sein, der Viewer innerhalb der IDE im lokalen Clone-Verzeichnis, auf einem Tablet beim Lesen einer Doku, wherever.

Wenn dann auch noch SVG Grafiken eingebunden sind, also potentiell scriptfähige XML Dateien, hört bei mir das Verständnis auf. Auf einer Entwicklermaschine will ich sowas nicht sehen.

Externe und interne Links

Wie in Screenshot gut sichtbar: Links die verlinkten Medien auf meiner Instanz, rechts die verlinkten Medien im Original. Lediglich das Badge “stopthemingmy.app” bleibt natürlich als 3rd Party erhalten. Eine CSP unterbindet das.

© 2020 Tomas Jakobs - Impressum und Datenschutzhinweis