Add Intruder result sorting, filtering, and response match/extraction columns

Aperta
#178 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
rust
Ambito
desktop, security

Direzione di ricerca

Start with crates/perseid/src/app/intruder/view/results.rs, which renders the current results table, and inspect the unified history in #169. Use synthetic traffic to assess the current retained rows and identify how sorting, filtering, selection, and response data are represented. Done means meeting the acceptance criteria, testing the listed edge cases, and documenting limits; the requested durable storage and off-UI-thread work make this broad design and implementation work.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement focus: community parity focus: usability priority: p2

Review baseline

Source review of main at 47e7fce3106584f4f333db4eada6dcd0c33c8bbe (2026-11-05), including unified history (#169). This is not a native-app runtime reproduction. Use synthetic traffic for tests and issue evidence.

Workflow gap and evidence

crates/perseid/src/app/intruder/view/results.rs renders results in sequence order with Payloads/Status/Length/Time. Headers are labels, not sort controls, and there are no result filters or response match/extraction columns. An outlier is hard to find in even a modest authorization or input-validation run.

Acceptance criteria

  • Stable ascending/descending sorting by sequence, status, numeric length, duration, and payload, with documented error/missing-value ordering.
  • Composable filters for status/error, payload text, length range, and response literal/regex match, plus a visible active-filter summary and reset.
  • Bounded user-defined response match/extraction columns with invalid-regex feedback and explicit decoded-versus-captured-byte semantics.
  • Selection remains tied to attack/sequence identity while results arrive or sort/filter changes; filtering never deletes results.
  • Operate over the full logically retained result set when durable storage is available, not just the visible window; keep expensive work off the UI thread.
  • Tests cover numeric sorting/ties, failures, zero results, regex errors, truncated/binary responses, and incoming results; document limits.

Separate from #57 (Proxy HTTP filters), #61 (payload processing before sending), and #62 (saved attack definitions). Can initially ship against current retained rows with clearly stated limits.

Lingua principale
Rust
Stelle
1
Fork
0
Merge medio
1h 12m
PR unite (30g)
137

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di andyintheshell/perseid

Tutte le issue di andyintheshell/perseid

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.