Files
QR-Code-Generator/README.md
Markus Busche 1ebc4c4ec2 Change title
2025-07-03 11:30:53 +02:00

135 lines
3.8 KiB
Markdown

# 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:<SSID>;T:WPA;P:<Passwort>;;
```
### Offenes Netzwerk (ohne Passwort):
```
WIFI:S:<SSID>;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`.