Safe Path Policy
- Englischer technischer Begriff
- Safe Path Policy
- Priorität
- 10/10
- Warum wichtig
- Dateioperationen brauchen Schutz gegen Path Traversal und absolute Pfade.
- Typischer Fehler
- Upload-Dateiname wird direkt aufgelöst.
- Enterprise-Einordnung
- Relevanter Baustein für wartbare Java-Enterprise-Modernisierung, CI/CD-fähige Maven-Projekte und nachvollziehbare Architekturgrenzen.
Ausgangspunkt-Code
Path target = uploadRoot.resolve(fileName);
Ziel-Code
Path resolved = root.resolve(requestedName).normalize();
if (!resolved.startsWith(root)) throw new SecurityException();
Atomic File Move
- Englischer technischer Begriff
- Atomic File Move
- Priorität
- 9/10
- Warum wichtig
- Exports sollen entweder vollständig oder gar nicht sichtbar sein.
- Typischer Fehler
- CSV wird direkt in die Zieldatei geschrieben.
- Enterprise-Einordnung
- Relevanter Baustein für wartbare Java-Enterprise-Modernisierung, CI/CD-fähige Maven-Projekte und nachvollziehbare Architekturgrenzen.
Ausgangspunkt-Code
Files.writeString(target, csv);
Ziel-Code
Path tmp = Files.createTempFile(target.getParent(), "invoice-", ".tmp");
Files.writeString(tmp, csv);
Files.move(tmp, target, REPLACE_EXISTING, ATOMIC_MOVE);
UTF-8 Explicit
- Englischer technischer Begriff
- UTF-8 Explicit
- Priorität
- 7/10
- Warum wichtig
- Explizites Encoding verhindert plattformabhängige Umlaute- und CSV-Fehler.
- Typischer Fehler
- Default-Encoding wird implizit genutzt.
- Enterprise-Einordnung
- Relevanter Baustein für wartbare Java-Enterprise-Modernisierung, CI/CD-fähige Maven-Projekte und nachvollziehbare Architekturgrenzen.
Ausgangspunkt-Code
Files.writeString(path, content);
Ziel-Code
Files.writeString(path, content, StandardCharsets.UTF_8);
CSV Header Contract
- Englischer technischer Begriff
- CSV Header Contract
- Priorität
- 7/10
- Warum wichtig
- Ein Header macht Batchdateien wartbarer und prüfbar.
- Typischer Fehler
- CSV-Spalten werden nur über Positionen erraten.
- Enterprise-Einordnung
- Relevanter Baustein für wartbare Java-Enterprise-Modernisierung, CI/CD-fähige Maven-Projekte und nachvollziehbare Architekturgrenzen.
Ausgangspunkt-Code
42;PAID;19.90
Ziel-Code
orderId;status;total
42;PAID;19.90
Upload Size Limit
- Englischer technischer Begriff
- Upload Size Limit
- Priorität
- 9/10
- Warum wichtig
- Uploads ohne Größenlimit führen zu Speicher- oder Plattenproblemen.
- Typischer Fehler
- InputStream wird unbegrenzt in ByteArray gelesen.
- Enterprise-Einordnung
- Relevanter Baustein für wartbare Java-Enterprise-Modernisierung, CI/CD-fähige Maven-Projekte und nachvollziehbare Architekturgrenzen.
Ausgangspunkt-Code
byte[] bytes = in.readAllBytes();
Ziel-Code
long copied = in.transferTo(new BoundedOutputStream(out, 10_000_000));
if (copied > 10_000_000) throw new SecurityException("file too large");