Large Data Safety Review (Sicherheitsprüfung für große Datenmengen)
Überprüfen Sie den gesamten Datenpfad auf beschränktes Produktionsverhalten. Berichten Sie evidenzgestützte Ergebnisse, bestätigte sichere Pfade, fehlende Nachweise und getestete oder ungetestete Grenzen.
Betriebsregeln
- Nur-Lesen als Standard. Ändern Sie keinen Code, keine Abhängigkeiten, keine Datenbanken, keine Produktionseinstellungen und keine externen Systeme.
- Installieren Sie keine Abhängigkeiten.
- Behandeln Sie fehlende Beweise niemals als Sicherheitsnachweis. Kennzeichnen Sie die betroffene Schicht als Unverified / Nicht verifiziert.
- Beanspruchen Sie keinen unterstützten Maßstab ohne Laufzeit-, Auslastungstest-, Abfrageplan- oder gleichwertige Beweise.
- Behandeln Sie Musterübereinstimmungen als Kandidaten, nicht als Ergebnisse. Lesen Sie den umgebenden Datenfluss, bevor Sie berichten.
- Bevorzugen Sie den Benutzerbereich oder das aktuelle Diff. Halten Sie Entdeckung, Lesen, Befehle und Ausgabe begrenzt.
Arbeitsablauf
1. Umfang festlegen
Lesen Sie die Anfrage, die Repository-Anweisungen, die benannten Dateien, das aktuelle Diff und die direkten Produzenten und Konsumenten. Geben Sie die überprüften, ausgeschlossenen und fehlenden Schichten an.
2. Skalierungsprofil erstellen
Erfassen Sie das aktuelle Volumen, das Design-Limit, die Anforderungshäufigkeit, die Parallelität, das Wachstum, die Artikelgröße, die Interaktionsziele und die Ressourcenlimits. Wenn Werte fehlen, kennzeichnen Sie Diagnoseannahmen getrennt von bestätigten Werten.
Verwenden Sie diese Diagnosesonden nur, wenn Benutzernachweise fehlen:
- 10.000.000 gespeicherte Zeilen.
- 100.000 passende Zeilen.
- 100 gleichzeitige interaktive Anfragen.
- Seitengröße 100, hartes Maximum 200.
- 100.000 logische Tabellenzeilen mit begrenzten DOM-Zeilen.
- 1.000.000 Export- oder Batch-Zeilen.
- 10-faches Wachstum.
3. Datenpfad nachverfolgen
Nachverfolgen:
Datenquelle -> Abfrage/Datenzugriff -> Dienst/Job -> API/Serialisierung -> Zustandsverwaltung -> Seite/Tabelle/Export
Geben Sie an, welche Schichten durch Beweise gestützt werden.
4. Jede Schicht überprüfen
Verwenden Sie references/review-checklist.md für die schichtübergreifende Überprüfung.
Laden Sie references/vue2-axios-vxe-table.md nur, wenn der Pfad Vue, axios, vxe-table, Browserzustand oder datenintensive Tabellendarstellung enthält.
Laden Sie references/dotnet-webapi-efcore.md nur, wenn der Pfad ASP.NET WebAPI, EF Core, LINQ, Controller, Dienste, Repositories, Exporte oder Hintergrundjobs enthält.
Laden Sie nicht standardmäßig jede Referenz.
Prüfen Sie Speicher-/Abfragebereich, Materialisierung, Projektion, Indizes, stabile Paginierung, Nutzlastgröße, Abbruch, Timeouts, begrenzte Parallelität, Gegendruck, Idempotenz, Wiederholungen, Zustandskopien, Berechnungsarbeit, DOM-Größe, Ladezustände und Degradation.
5. Kandidatenbefunde validieren
Für jeden Kandidaten:
- Identifizieren Sie die wachsende Eingabe- oder Parallelitätsdimension.
- Bestätigen Sie, wo Filterung, Projektion, Paginierung, Pufferung oder Darstellung erfolgt.
- Überprüfen Sie vorhandene harte Grenzen und ob diese getestet sind.
- Verfolgen Sie Abbruch, Timeout, Wiederholung und Fehlerweitergabe.
- Zeichnen Sie genaue Datei- und Zeilennachweise auf, wenn Code verfügbar ist.
- Lehnen Sie den Kandidaten ab, wenn der Kontext beweist, dass der Pfad beschränkt ist.
6. Beweise und Schweregrad klassifizieren
Beweiszustände:
- Confirmed / Bestätigt: direkter Code, SQL, Konfiguration, Test, Laufzeit oder Designnachweis.
- Probable / Wahrscheinlich: starker Pfadnachweis mit einem fehlenden vorgelagerten oder nachgelagerten Artefakt.
- Unverified / Nicht verifiziert: notwendiges Material nicht verfügbar.
Schweregrade:
- P0: bestätigte Datenbeschädigung, Produktionsunverfügbarkeit oder unkontrollierte Ressourcenerschöpfung auf einem erreichbaren Pfad.
- P1: wahrscheinliches Timeout, OOM, Datenbanküberlastung, schwerwiegender Interaktionsfehler oder falsche Ergebnisse bei bekanntem oder diagnostischem Maßstab.
- P2: bedeutende Verschlechterung bei wachsendem Volumen oder Parallelität, mit aktuellem Spielraum oder einem alternativen Pfad.
- P3: fehlende Grenzen, Beobachtbarkeit, Tests oder Wartbarkeitsnachweise ohne nachgewiesenen schwerwiegenden Fehler.
Weisen Sie P0 oder P1 nicht allein aus Diagnoseannahmen zu. Setzen Sie schwerwiegende, aber nicht belegte Risiken unter hochprioritäre Verifikation.
7. Bericht schreiben
Laden Sie references/output-contract.md und befolgen Sie es genau.
Jeder Befund muss enthalten:
- Schweregrad und Beweiszustand.
- Schicht und stabile Root-Cause-Code.
- Beweisort.
- Auslösende Skalierung.
- Auswirkung.
- Minimale Abhilfe.
- Verifikationsmethode.
Listen Sie bestätigte sichere Pfade nur auf, wenn Beweise diese stützen.
Repository- und Ausgabelimits
- Zählen Sie höchstens 100.000 Pfade als Metadaten auf; verengen Sie die Auswahl durch Verzeichnis und Erweiterung darüber hinaus.
- Scannen Sie höchstens 20.000 Quelldateien oder 500 MiB Text pro Inhaltsdurchlauf, je nachdem, was zuerst eintritt.
- Behalten Sie höchstens 500 Kandidatenübereinstimmungen; aggregieren Sie den Rest und notieren Sie die abgeschnittene Anzahl.
- Lesen Sie tiefgehend höchstens 200 Kandidatendateien pro Durchlauf.
- Verwenden Sie ein Standard-Befehls-Timeout von 60 Sekunden; verengen Sie den Umfang nach einem Timeout.
- Erweitern Sie höchstens 50 Befunde und 5 repräsentative Beweisorte pro Root-Cause.
- Überspringen Sie Abhängigkeiten, generierte Ausgaben, Archive, Binärdateien, Build-Verzeichnisse und große minifizierte Dateien.
- Melden Sie jeden Ausschluss und jede Kürzung mit ursprünglicher Anzahl, beibehaltener Anzahl und Grund.
Fehlende Beweise und Fehlschläge
- Nur Frontend: Überprüfen Sie das Frontend und erstellen Sie einen nicht verifizierten Backend/API/Datenbankvertrag.
- Nur Backend: Überprüfen Sie das Backend und markieren Sie die Consumer-Darstellung und -Interaktion als Nicht verifiziert.
- Überdimensioniertes Repository: Verengen Sie die Auswahl ausgehend von Diff, Routen, Clients, Abfragen, Exports und Rendereinstiegspunkten.
- Befehls-Timeout: Reduzieren Sie den Batch- oder Pfadumfang, anstatt das Timeout wiederholt zu erhöhen.
- Dokumentationskonflikte mit Code: Bevorzugen Sie Code, Tests, Abfragepläne und Laufzeitbeweise; melden Sie Dokumentationsabweichungen.
- Sensibles Material: Wiederholen Sie keine Geheimnisse oder Datensätze; verwenden Sie eine geschwärzte Ortsbeschreibung.