# Needs Validation — Vienotais Zemes Reģistrs Security Audit **Target:** https://vienotaiszemesregistrs.tech/hakatons/#/ **Audit Date:** 2026-10-26 **Auditor:** Automated remote security audit **Note:** All items below require additional testing that could not be completed in the available remote scope. Each item is marked with its priority, required environment, and specific test steps. --- ## N-001 — HSTS enforcement validation (F-003) **Priority:** HIGH | **Required:** Active HTTPS server, HTTP redirect flow access ### What needs validating That `Strict-Transport-Security` header or `enforce_https` directive is properly configured on the production Caddy server, and that it has a sufficient max-age value. ### Current state The HSTS status was marked as **Candidate** because the audit only confirmed: - HTTP→HTTPS redirect exists (308) - No HSTS header present on current responses ### Test steps 1. Deploy test instance with `enforce_https` and `Strict-Transport-Security` in Caddy config 2. Send HTTP request to `http:///hakatons/` — verify 308 redirect 3. Capture HTTPS response headers — confirm HSTS present with max-age ≥ 31536000 4. Verify preloads list submission for production domain ### Blocking factor Cannot modify server-side configuration; requires access to Caddyfile on the hosting environment. --- ## N-002 — CSP effectiveness on SPA (F-010, F-012) **Priority:** HIGH | **Required:** Deployed CSP header + browser devtools ### What needs validating That any deployed CSP does not break the Vue 3 SPA's module loading chain, and that a nonce-based approach correctly handles dynamic script and style injection during runtime. ### Current state CSP is currently only present on **error pages** (`default-src 'none'`) — this would block all application scripts if applied to the success page. The SPA will require full CSP configuration. ### Test steps 1. Deploy CSP headers for the SPA: `script-src`, `style-src` directives with nonce injection 2. Open browser devtools → Console — check for CSP violations 3. Verify module script integrity via subresource hashes or dynamic nonce propagation 4. Test inline event handlers, `<'` 3. Submit and inspect rendered HTML via devtools — verify no script blocks execute in browser context 4. Test localStorage/sessionStorage injection → confirm Vue templates do not bind directly to unsanitized values ### Blocking factor No user credentials available. No running backend endpoints to accept form submissions or return dynamic content. --- ## Summary of Priorities | Priority | Count | Items | |----------|-------|-------| | Critical | 1 | N-003 (CSRF with auth) | | High | 4 | N-001, N-002, N-004, N-010 | | Medium | 3 | N-005, N-009, plus existing MEDIUM confirmations | | Low | 3 | N-006, N-007, N-008 | **Next steps for validation:** 1. Obtain test user credentials for the application 2. Acquire Name.com domain management access 3. Request Express server source code from development team 4. Coordinate CSP deployment for pre-launch testing with Content-Security-Policy-Report-Only mode