DatenGraf ist eine vollständig browserbasierte Anwendung ohne Backend. Das hat direkte Sicherheitsimplikationen:
- Keine Daten verlassen Ihr Gerät. Alle importierten CSV-Daten, alle über den Wizard erfassten Einträge und alle gespeicherten Zustände verbleiben ausschließlich im Browser (LocalStorage des Nutzers).
- Kein Server, keine Datenbank, kein Account. Es existiert keine serverseitige Komponente, die Nutzerdaten empfangen oder speichern könnte.
- Kein Tracking, keine Telemetrie. Die Anwendung sendet keinerlei Anfragen an Dritte – mit Ausnahme des CDN-Aufrufs für Cytoscape.js (
cdnjs.cloudflare.com), Font Awesome Icons und Google Fonts beim ersten Laden. - CSV per URL-Import. Wenn der Nutzer aktiv eine externe URL eingibt, wird diese per
fetch()geladen. Die Anfrage geht vom Browser des Nutzers aus – nicht von einem Server.
Sicherheitsupdates werden ausschließlich für die aktuelle Version im main-Branch bereitgestellt.
| Version | Support |
|---|---|
main (aktuell) |
Aktiv |
| Ältere Commits | Kein Support |
Da Datengraf beliebige CSV-Dateien einliest und deren Inhalt als HTML rendert, ist Cross-Site Scripting (XSS) die relevanteste Angriffsfläche. Alle Werte werden vor dem Einfügen in den DOM durch die Funktion esc() in js/app.js escaped:
function esc(str) {
if (!str) return '';
return str.replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>');
}Trotzdem könnten Bypässe existieren, etwa durch:
- Nicht gecoverte DOM-Einfüge-Pfade (z. B.
innerHTMLohneesc()) - Attribut-Injection in dynamisch generiertem HTML
- Prototype-Pollution beim CSV-Parsing
Eine vom Nutzer eingegebene URL wird per fetch() geladen. Da CORS den Abruf beliebiger URLs einschränkt, ist das Angriffspotenzial begrenzt. Dennoch könnten lokal erreichbare Adressen (localhost, 192.168.x.x) angefragt werden, wenn der Nutzer dazu verleitet wird.
Bitte melden Sie Sicherheitsprobleme nicht als öffentliches GitHub-Issue.
Kontakt: contact@nozilla.de
Bitte senden Sie folgende Informationen:
- Beschreibung der Schwachstelle
- Reproduktionsschritte (minimales CSV-Beispiel, Browser und Version)
- Mögliche Auswirkung (welche Daten könnten betroffen sein?)
- Optional: einen Vorschlag zur Behebung
Sie erhalten innerhalb von 5 Werktagen eine Antwort. Öffentliche Bekanntmachung wird nach Abstimmung und Bereitstellung eines Fixes koordiniert (Responsible Disclosure).
Folgende Punkte sind kein Sicherheitsproblem im Kontext dieser Anwendung:
- Daten, die ein Nutzer bewusst selbst in das Tool eingibt (keine fremden Daten involviert)
- Fehlende HTTPS-Erzwingung (liegt beim Hosting-Anbieter / GitHub Pages)
- Fehlende Rate-Limits (kein Server vorhanden)
- Content Security Policy (CSP) des Hosting-Anbieters