Ausfuehrbares Pruefpaket fuer Payment-Terminal-Systeme: 1. Semgrep-Regeln (25 Regeln in 5 Dateien): - Logging: Sensitive Daten, Tokens, Debug-Flags - Crypto: MD5/SHA1/DES/ECB, Hardcoded Secrets, Weak Random, TLS - API: Debug-Routes, Exception Leaks, IDOR, Input Validation - Config: Test-Endpoints, CORS, Cookies, Retry - Data: Telemetrie, Cache, Export, Queue, Testdaten 2. CodeQL Query-Specs (5 Briefings): - Sensitive Data → Logs - Sensitive Data → HTTP Response - Tenant Context Loss - Sensitive Data → Telemetry - Cache/Export Leak 3. State-Machine-Tests (10 Testfaelle): - 11 Zustaende, 15 Events, 8 Invarianten - Duplicate Response, Timeout+Late Success, Decline - Invalid Reversal, Cancel, Backend Timeout - Parallel Reversal, Unknown Response, Reconnect - Late Response after Cancel 4. Finding Schema (JSON Schema): - Einheitliches Format fuer alle Engines - control_id, engine, status, confidence, evidence, verdict_text Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
48 lines
1.1 KiB
Markdown
48 lines
1.1 KiB
Markdown
# Terminal Payment State Machine
|
|
|
|
## States
|
|
- IDLE
|
|
- SESSION_OPEN
|
|
- PAYMENT_REQUESTED
|
|
- WAITING_FOR_TERMINAL
|
|
- APPROVED
|
|
- DECLINED
|
|
- CANCELLED
|
|
- REVERSAL_PENDING
|
|
- REVERSED
|
|
- ERROR
|
|
- DESYNC
|
|
|
|
## Events
|
|
- open_session
|
|
- close_session
|
|
- send_payment
|
|
- terminal_ack
|
|
- terminal_approve
|
|
- terminal_decline
|
|
- terminal_timeout
|
|
- backend_timeout
|
|
- reconnect
|
|
- cancel_request
|
|
- reversal_request
|
|
- reversal_success
|
|
- reversal_fail
|
|
- duplicate_response
|
|
- invalid_command
|
|
|
|
## Transitions
|
|
| From | Event | To |
|
|
|------|-------|----|
|
|
| IDLE | open_session | SESSION_OPEN |
|
|
| SESSION_OPEN | send_payment | PAYMENT_REQUESTED |
|
|
| PAYMENT_REQUESTED | terminal_ack | WAITING_FOR_TERMINAL |
|
|
| WAITING_FOR_TERMINAL | terminal_approve | APPROVED |
|
|
| WAITING_FOR_TERMINAL | terminal_decline | DECLINED |
|
|
| WAITING_FOR_TERMINAL | terminal_timeout | DESYNC |
|
|
| WAITING_FOR_TERMINAL | cancel_request | CANCELLED |
|
|
| APPROVED | reversal_request | REVERSAL_PENDING |
|
|
| REVERSAL_PENDING | reversal_success | REVERSED |
|
|
| REVERSAL_PENDING | reversal_fail | ERROR |
|
|
| * | invalid_command | ERROR |
|
|
| * | backend_timeout | DESYNC |
|