CSV-Upload gegen CSRF und unsichere Ablage härten
- Upload-Formular mit CSRF-Token absichern - CSV-Dateien temporär unter var/uploads speichern und nach Import löschen - Dateityp, Dateigröße und Dateiendung prüfen - CSV-Ausgabe escapen und PayPal-Name-Lookup korrigieren - M2- und Sicherheitsdokumentation aktualisieren
This commit is contained in:
@@ -48,12 +48,29 @@ Erste Legacy-POST-Seiten sind opt-in abgesichert:
|
||||
- `stricheintragen.php`: Sammelerfassung von Strichen.
|
||||
- `einzahlung.php`: Sammelerfassung von Einzahlungen.
|
||||
- `letzteneintraege.php`: letzte Einzahlungen und Strich-Eintraege loeschen.
|
||||
- `csvupload.php`: CSV-Zahlungsimport.
|
||||
|
||||
Noch offen:
|
||||
|
||||
- Uploads: `csvupload.php`.
|
||||
- Spezialprozesse: `mailversenden.php`, `jahresauswertung.php`.
|
||||
|
||||
### CSV-Upload-Haertung
|
||||
|
||||
- `csvupload.php` nutzt jetzt CSRF.
|
||||
- Uploads werden unter `var/uploads` gespeichert und nach der Verarbeitung
|
||||
geloescht. Damit liegen importierte Dateien nicht mehr im Webroot.
|
||||
- Dateiendung, Dateigroesse und MIME-Typ werden vor der Verarbeitung geprueft.
|
||||
- Hochgeladene Dateien bekommen serverseitig erzeugte Zufallsnamen.
|
||||
- CSV-Auswertungswerte werden HTML-escaped ausgegeben.
|
||||
- Die PayPal-Namenssuche nutzt `Name` und `paypalname` mit expliziter
|
||||
Parameterbindung.
|
||||
|
||||
Offen fuer M6:
|
||||
|
||||
- Importvorschau vor dem Schreiben.
|
||||
- Import-Batch/Audit-Log.
|
||||
- Saubere Fehlerberichte je CSV-Zeile.
|
||||
|
||||
### Migrationen
|
||||
|
||||
- `database/migrations/0001_legacy_mysql_baseline.sql` bildet die bisherige
|
||||
@@ -115,6 +132,10 @@ Die Skripte erwarten die bekannten Dev-Umgebungsvariablen `DB_HOST`, `DB_NAME`,
|
||||
liefert bei POST ohne Token HTTP 419.
|
||||
- CSRF positive Tests fuer Korrektur-/Loeschflows: gueltige Token funktionieren
|
||||
fuer das Loeschen temporaerer Einzahlungs- und Strich-Testeintraege.
|
||||
- CSRF negative Test fuer CSV-Upload: POST ohne Token liefert HTTP 419.
|
||||
- CSV-Upload positive Tests: gueltiges Token verarbeitet eine CSV-Datei, erkennt
|
||||
eine PayPal-Alias-Dublette und hinterlaesst keine Datei in `var/uploads`.
|
||||
- CSV-Upload negative Tests: Nicht-CSV-Dateien werden abgewiesen.
|
||||
- Golden Master weiterhin gruen mit 104 Assertions.
|
||||
- HTTP-Smoke weiterhin gruen mit 14 sicheren Seiten.
|
||||
|
||||
@@ -128,8 +149,6 @@ Die Skripte erwarten die bekannten Dev-Umgebungsvariablen `DB_HOST`, `DB_NAME`,
|
||||
|
||||
## Naechste Schritte
|
||||
|
||||
1. CSV-Upload gesondert absichern und spaeter Uploads ausserhalb des Webroots
|
||||
verlegen.
|
||||
2. Eine duenne View-/Layout-Struktur vorbereiten, ohne Header/Footer-Markup
|
||||
1. Eine duenne View-/Layout-Struktur vorbereiten, ohne Header/Footer-Markup
|
||||
sofort zu verschieben.
|
||||
3. Danach M3 starten: Tenants, User, Registrierung, Login und Rollen.
|
||||
2. Danach M3 starten: Tenants, User, Registrierung, Login und Rollen.
|
||||
|
||||
Reference in New Issue
Block a user