Sicherheitsgrenzen
Was die Anwendung von sich aus durchsetzt — und wo ihre Grenzen liegen. Der zweite Teil ist der wichtigere: Er sagt, was die Umgebung leisten muss.
Was die Anwendung durchsetzt
Abschnitt betitelt „Was die Anwendung durchsetzt“| Maßnahme | Wirkung |
|---|---|
| Upload-Obergrenze | gilt für den Webserver und die Multipart-Grenze; darüber 413, bevor der Inhalt verarbeitet wird |
| Keine DTD (XXE) | die Engine liest Rechnungs-XML mit verbotener DTD-Verarbeitung und ohne Entity-Resolver. Eine externe Entität kann damit weder Dateien lesen noch Netzzugriffe auslösen |
| Schemaprüfung nur lokal | geprüft wird gegen die mitgelieferten Schemata; der Schema-Resolver löst ausschließlich lokal auf. Ein schemaLocation im Dokument führt zu keinem Netzzugriff — sonst wäre jede hochgeladene Rechnung ein SSRF-Vektor |
| Keine externen Hosts (CSP) | default-src 'self', Skripte nur mit Nonce, keine Inline-Skripte. Alle Bibliotheken liegen lokal — kein CDN. Im Modus OnPremise ist die Richtlinie rein 'self' |
| Bot-Schutz der Formulare | Honigtopf-Feld und signierte Zeitfalle auf allen Formularseiten. Fehler im Schutz selbst lassen die Anfrage durch, statt die Seite unbenutzbar zu machen |
| Zugriffsbegrenzung | fester Zählrahmen je Adresse bzw. je API-Schlüssel, ohne Warteschlange |
| Passwörter | PBKDF2-HMAC-SHA256, 210 000 Iterationen, eigenes Salz je Konto; mindestens 12 Zeichen; Sperre nach 10 Fehlversuchen für 15 Minuten |
| Anmelde-Links | 15 Minuten gültig, einmalig einlösbar, in der Datenbank nur als Hash; eine Bestätigungsseite verhindert, dass ein Mail-Scanner die Anmeldung auslöst |
| API-Schlüssel | im Schlüsselspeicher liegen nur SHA-256-Hashes; der Klartext erscheint einmalig beim Anlegen und existiert danach nirgends |
| Cookie und Antiforgery | HttpOnly, SameSite=Lax und außerhalb der Entwicklung Secure; die Schlüssel liegen im persistenten Ring unter .aspnet\ |
| Trennung der Mandanten | jede Archivabfrage ist mandantenbezogen konstruiert; die Mitgliedschaft wird je Anfrage frisch gelesen, ein Entzug wirkt sofort |
Grenzen, die zu kennen sind
Abschnitt betitelt „Grenzen, die zu kennen sind“/api-docs und /openapi/v1.json sind öffentlich, auch in der Enterprise-Installation. Sie
enthalten die Beschreibung der Schnittstelle, keine Daten; wer das nicht möchte, blendet die Pfade im
Reverse Proxy aus.
Die Oberfläche wird nicht automatisch über HTTPS erzwungen. Es gibt keine Weiterleitung von HTTP auf HTTPS und keine Option „nur HTTPS“ im Installer; wer beides braucht, regelt es am Proxy.
Übersetzt ist die Oberfläche, nicht jeder Prüfbefund. Ein Teil der Meldungen kommt aus der Engine und ist deutsch; Regel-IDs und BT-Fundstellen sind sprachneutral.
Was in die Sicherung gehört
Abschnitt betitelt „Was in die Sicherung gehört“Zwei Ordner im Programmverzeichnis sind sicherheitsrelevant und werden gern übersehen: keys\ mit
den Schlüssel-Hashes und .aspnet\ mit dem Schlüsselring. Siehe
Daten und Sicherung.