ConfigController::get and HeartbeatController::post verified HMAC but never checked nonce replay or timestamp freshness, so a captured signed request (e.g. a replayed heartbeat) could be replayed forever, masking a dead device. Inject NonceRepository (+Config) into both and add the same timestamp-window + nonce-remember checks IngestController already applies, after HMAC verification and before the response/side effect. |
||
|---|---|---|
| .. | ||
| Api | ||
| Auth | ||
| Dashboard | ||
| Db | ||
| Geometry | ||
| Http | ||
| Ingest | ||
| Repository | ||
| Security | ||
| View | ||
| Config.php | ||