Dateien nach "/" hochladen
This commit is contained in:
1 parent
6ddbdc0ae5
commit
dccee3694a
2 files changed
+126
-14
No files matched your search
@@ -1,18 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2026 olli1986
|
||||
Copyright (c) 2026 Oliver Braasch
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
|
||||
associated documentation files (the "Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
|
||||
following conditions:
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial
|
||||
portions of the Software.
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
||||
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
|
||||
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
||||
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
@@ -1,2 +1,111 @@
|
||||
# Software--bersicht
|
||||
# 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 `<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](LICENSE).
|
||||
|
||||
---
|
||||
|
||||
## Hinweis
|
||||
|
||||
Entstanden als Projekt von Oliver Braasch, mit Unterstützung von Claude
|
||||
(Anthropic) bei Entwurf, Umsetzung und Dokumentation.
|
||||
Reference in new issue
Block a user