move_detect/cloud/src
유창욱 171ef3e1c5 fix(cloud): add nonce-replay + timestamp-window checks to config/heartbeat (M2)
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.
2026-07-12 09:19:32 +09:00
..
Api fix(cloud): add nonce-replay + timestamp-window checks to config/heartbeat (M2) 2026-07-12 09:19:32 +09:00
Auth fix(cloud): enforce CSRF on authenticated state-changing POSTs (M1) 2026-07-12 09:16:38 +09:00
Dashboard fix(cloud): enforce CSRF on authenticated state-changing POSTs (M1) 2026-07-12 09:16:38 +09:00
Db feat(cloud): PDO repositories + schema + Cafe24 deploy doc 2026-07-12 01:58:05 +09:00
Geometry feat(cloud): polygon validation + zone config controller (RBAC) 2026-07-12 01:02:37 +09:00
Http feat(cloud): path-param router + dispatch 2026-07-12 00:49:52 +09:00
Ingest fix(cloud): move ingest per-device rate limit post-auth, add pre-auth IP limit (H1) 2026-07-12 09:09:31 +09:00
Repository fix(cloud): deterministic event ordering + zone concurrent-delete detection 2026-07-12 02:06:32 +09:00
Security feat(cloud): argon2id password + CSRF token helpers 2026-07-12 00:11:20 +09:00
View fix(cloud): login form submits via fetch (redirect on success, show error) 2026-07-12 01:39:06 +09:00
Config.php fix(cloud): move ingest per-device rate limit post-auth, add pre-auth IP limit (H1) 2026-07-12 09:09:31 +09:00