# QR Code Generator Ein einfacher QR-Code-Generator, der vollständig im Browser läuft. Keine Daten werden an externe Server gesendet. ## Features - ✅ Vollständig clientseitig (keine Server-Kommunikation) - ✅ URL-Parameter für alle Einstellungen - ✅ Anpassbare Größen und Farben - ✅ Verschiedene Fehlerkorrektur-Level - ✅ Download-Funktion - ✅ Responsive Design - ✅ **WiFi QR-Code Unterstützung mit eigener UI** - ✅ **Dynamische Klartext-Anzeige** - ✅ **Automatische QR-Code-Generierung** - ✅ **Sicher gegen XSS (Content Security Policy, validierte Eingaben, kein Inline-JS)** ## Docker Setup ### Mit Docker Compose (empfohlen) ```bash # Container bauen und starten docker-compose up -d # Container stoppen docker-compose down ``` ### Mit Docker direkt ```bash # Image bauen docker build -t qr-generator . # Container starten docker run -d -p 8080:80 --name qr-generator qr-generator # Container stoppen docker stop qr-generator docker rm qr-generator ``` ## Verwendung Nach dem Start ist die Anwendung unter `http://localhost:8080` erreichbar. ### Normale QR-Codes Geben Sie einfach Text oder URLs in das erste Eingabefeld ein. Der QR-Code wird automatisch generiert. ### WiFi QR-Codes Die App bietet spezielle Eingabefelder für WiFi-Daten: 1. **WiFi SSID:** Geben Sie den Namen Ihres WLAN-Netzwerks ein 2. **WiFi Password:** Geben Sie das WLAN-Passwort ein 3. **Automatische Generierung:** Der QR-Code wird im korrekten WiFi-Format erstellt 4. **Klartext-Anzeige:** Das Textfeld zeigt den generierten WiFi-Code an **Verschlüsselung:** Fest eingestellt auf WPA/WPA2 **Hidden Network:** Standardmäßig auf false (nicht versteckt) ### URL-Parameter Die Anwendung unterstützt folgende URL-Parameter: - `text` - Text oder URL für den QR-Code - `ssid` - WiFi SSID - `password` - WiFi Passwort - `size` - Größe (128, 256, 512, 1024) - `errorCorrection` - Fehlerkorrektur (L, M, Q, H) - `foreground` - Vordergrundfarbe (Hex-Code) - `background` - Hintergrundfarbe (Hex-Code) ### Beispiele **Normale QR-Codes:** ``` http://localhost:8080/?text=Hello%20World http://localhost:8080/?text=Test&size=512&errorCorrection=H http://localhost:8080/?text=Colored&foreground=%23ff0000&background=%23ffff00 ``` **WiFi QR-Codes:** ``` http://localhost:8080/?ssid=MeinWLAN&password=MeinPasswort123 http://localhost:8080/?ssid=OffenesWLAN ``` ## WiFi QR-Code Format Die App generiert automatisch QR-Codes im Standard-WiFi-Format: ### WPA/WPA2 Netzwerk: ``` WIFI:S:;T:WPA;P:;; ``` ### Offenes Netzwerk (ohne Passwort): ``` WIFI:S:;T:nopass;; ``` ### Verwendung: 1. Füllen Sie die WiFi-Felder aus 2. Der QR-Code wird automatisch generiert 3. Das Textfeld zeigt den generierten Code an 4. Scannen Sie ihn mit einem Smartphone Das Smartphone erkennt automatisch, dass es sich um WiFi-Daten handelt und bietet an, sich mit dem Netzwerk zu verbinden! ## Besondere Funktionen ### Dynamische Klartext-Anzeige - Das Textfeld zeigt immer den aktuellen Inhalt des QR-Codes an - Bei WiFi-Eingaben wird automatisch das korrekte Format angezeigt - Bei normaler Texteingabe bleibt der eingegebene Text sichtbar ### Synchronisierte Felder - Beim Leeren des Textfeldes werden auch die WiFi-Felder geleert - Alle Felder werden synchron verwaltet ### Intelligente Validierung - WiFi-Passwort ohne SSID wird als Fehler angezeigt - Leere Eingaben werden entsprechend behandelt ## Sicherheit & Content Security Policy (CSP) Die Anwendung ist gegen XSS-Angriffe abgesichert: - Es wird eine strenge Content Security Policy (CSP) verwendet (`script-src 'self'`), die Inline-Skripte blockiert. - Das gesamte JavaScript ist in die Datei `main.js` ausgelagert und wird als externes Skript eingebunden. - Alle Benutzereingaben und URL-Parameter werden validiert und gefiltert. - Es wird kein `innerHTML` verwendet, sondern nur sichere Methoden wie `.textContent` und `.value`.