trusted proxy, TOTP replay protection, new tests
- Trusted proxy config option for proxy-aware IP extraction used by rate limiting and audit logs; validates proxy IP before trusting X-Forwarded-For / X-Real-IP headers - TOTP replay protection via counter-based validation to reject reused codes within the same time step (±30s) - RateLimit middleware updated to extract client IP from proxy headers without IP spoofing risk - New tests for ClientIP proxy logic (spoofed headers, fallback) and extended rate-limit proxy coverage - HTMX error banner script integrated into web UI base - .gitignore updated for mciasdb build artifact Security: resolves CRIT-01 (TOTP replay attack) and DEF-03 (proxy-unaware rate limiting); gRPC TOTP enrollment aligned with REST via StorePendingTOTP Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -65,7 +65,14 @@ func (db *DB) configure() error {
|
||||
"PRAGMA journal_mode=WAL",
|
||||
"PRAGMA foreign_keys=ON",
|
||||
"PRAGMA busy_timeout=5000",
|
||||
"PRAGMA synchronous=NORMAL",
|
||||
// Security (DEF-07): FULL synchronous mode ensures every write is
|
||||
// flushed to disk before SQLite considers it committed. With WAL
|
||||
// mode + NORMAL, a power failure between a write and the next
|
||||
// checkpoint could lose the most recent committed transactions,
|
||||
// including token issuance and revocation records — which must be
|
||||
// durable. The performance cost is negligible for a single-node
|
||||
// personal SSO server.
|
||||
"PRAGMA synchronous=FULL",
|
||||
}
|
||||
for _, p := range pragmas {
|
||||
if _, err := db.sql.Exec(p); err != nil {
|
||||
|
||||
Reference in New Issue
Block a user