3.8 KiB
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
{
"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
$_GETnoch$_POSTnoch 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.jsondürfen den jeweiligen Tool-Ordner nicht verlassen. - Inhalte aus
tool.jsonwerden 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://oderhttps://beginnen. - Die Seite kommt vollständig ohne JavaScript aus. Die Content-Security-Policy verbietet Skripte deshalb komplett.
Getestet unter anderem mit <script>-Tags, Event-Handlern und
javascript:-Links im Namen bzw. Repository-Feld einer präparierten
tool.json, sowie mit ../-Pfaden als Einstiegsdatei — alle Fälle werden
abgefangen bzw. maskiert ausgegeben.
Voraussetzung: PHP 8.0 oder neuer.
Rechtliches beim öffentlichen Betrieb
In Deutschland braucht ein öffentlich erreichbares Angebot ein Impressum
(§ 5 DDG) und eine Datenschutzerklärung. impressum.html und
datenschutz.html sind Vorlagen mit Platzhaltern, die vor der
Veröffentlichung ausgefüllt und geprüft werden müssen. Sie sind nach bestem
Wissen erstellt, ersetzen aber keine Rechtsberatung.
webserver-sicherheit.md enthält passende nginx- und Apache-Konfiguration
für Sicherheits-Header, das Sperren versteckter Dateien und Hinweise zu
HSTS, PHP-Fehlerausgabe und Backup-Dateien im Web-Verzeichnis.
Lizenz
Dieses Projekt steht unter der MIT-Lizenz, siehe LICENSE.
Hinweis
Entstanden als Projekt von Oliver Braasch, mit Unterstützung von Claude (Anthropic) bei Entwurf, Umsetzung und Dokumentation.