# software.obraasch.de — Übersichtsseite Kleine, sicherheitsbewusste Startseite für `software.obraasch.de`. Listet automatisch alle Werkzeuge auf, die dort in einem Unterordner mit einer `tool.json` liegen — inklusive Vorlagen für Impressum und Datenschutzerklärung sowie Hinweisen zur Absicherung des Webservers. **Live:** https://software.obraasch.de/ --- ## Enthaltene Dateien | Datei | Zweck | |---|---| | `index.php` | Die eigentliche Übersichtsseite, gehört ins Wurzelverzeichnis der Domain | | `impressum.html` | Vorlage für das Impressum (§ 5 DDG) | | `datenschutz.html` | Vorlage für die Datenschutzerklärung | | `webserver-sicherheit.md` | Fertige nginx- und Apache-Konfiguration für Sicherheits-Header | | `tool.json.beispiel` | Beispiel für die Metadatendatei eines einzelnen Werkzeugs | --- ## Funktionsweise von `index.php` Beim Aufruf durchsucht die Seite ihr eigenes Verzeichnis nach Unterordnern, die eine Datei `tool.json` enthalten. Ein Ordner ohne diese Datei taucht nicht auf — so bestimmt man selbst, was öffentlich sichtbar wird. ``` software.obraasch.de/ ├── index.php ├── impressum.html ├── datenschutz.html └── json-workbench/ ├── tool.json <- macht den Ordner sichtbar ├── json-workbench.html └── lib/ ``` ### Format von `tool.json` ```json { "name": "JSON Studio & MariaDB Workbench", "beschreibung": "Kurzbeschreibung in einem Satz.", "einstieg": "json-workbench.html", "repository": "https://git.obraasch.de/olli1986/JSON-Studio", "repositoryName": "Quellcode (Gitea)", "version": "3.1", "lizenz": "MIT", "stand": "2026-09-17", "tags": ["JSON", "CSV", "Excel"], "sichtbar": true } ``` Nur `name` und `einstieg` sind wirklich nötig, alles andere ist optional. `sichtbar: false` blendet einen Ordner aus, ohne die Datei zu löschen. --- ## Sicherheitskonzept - Die Seite verarbeitet bewusst **keinerlei Nutzereingaben** — weder `$_GET` noch `$_POST` noch Cookies. Damit entfällt die übliche Angriffsfläche für Injection. - Es wird nichts aus einem von außen beeinflussbaren Pfad zusammengesetzt. Gelesen wird ausschließlich das eigene Verzeichnis; Pfade aus `tool.json` dürfen den jeweiligen Tool-Ordner nicht verlassen. - Inhalte aus `tool.json` werden trotzdem streng geprüft und bei der Ausgabe vollständig maskiert. Selbst wenn dort HTML oder Skriptcode stünde, würde er als reiner Text angezeigt. - Externe Links (z. B. das Repository eines Werkzeugs) werden nur akzeptiert, wenn sie mit `http://` oder `https://` beginnen. - Die Seite kommt vollständig ohne JavaScript aus. Die Content-Security-Policy verbietet Skripte deshalb komplett. Getestet unter anderem mit `