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
|
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
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
associated documentation files (the "Software"), to deal in the Software without restriction, including
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
in the Software without restriction, including without limitation the rights
|
||||||
copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
following conditions:
|
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
|
The above copyright notice and this permission notice shall be included in all
|
||||||
portions of the Software.
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
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