Beveiliging is een serverbeslissing, geen widgetstatus.
2IZI Guard beschermt formulieren en publieke acties met lokale risicoanalyse, adaptieve frictie en eenmalige serverautorisatietokens. Geen verplichte externe CAPTCHA-runtime.
Klein integratieoppervlak. Finale toestemming blijft server-side.
De huidige core richt zich op PHP 8.1+ en is framework-independent aan de security boundary. Bescherm elke action expliciet en consumeer het token vóór de business operation.
1. Frontend
<script src="/guard/public/assets/guard.js?v=0.4.10" defer></script> <form data-guard-action="contact"> … </form>
2. Protected action
$result = Guard::verifyAndConsume(
$_POST['guard_token'] ?? '',
'contact'
);
if (!$result->allowed()) {
http_response_code(403);
exit;
}Typische actions
loginregisterpassword_resetcontactcheckoutfile_uploadEén beschermde action. Vijf onafhankelijke checkpoints.
De browser kan aan de challenge deelnemen, maar business permission wordt altijd door de server uitgegeven en verbruikt.
Context valideren
Origin, action, session en grove limieten voor duur werk controleren.
Lokaal scoren
Server- en applicatiesignalen leveren een uitlegbare risicobeslissing.
Frictie toevoegen
Policy kiest PASS, PoW, interaction, throttle of deny.
Eenmalig uitgeven
Willekeurig 256-bit opaque token binden aan session/action/origin en korte TTL.
Atomair consumeren
Business endpoint consumeert eenmaal; replay, mismatch en expiry worden geweigerd.
Policy modes
Vertrouwd verkeer kan stil passeren; hoger risico kan PoW, hold, throttle of deny activeren.
Integration contract
De huidige core richt zich op PHP 8.1+ en is framework-independent aan de security boundary. Bescherm elke action expliciet en consumeer het token vóór de business operation.
Action registry
The server defines allowed action names. Never use a client-provided action as authorization context.
'contact' => [ 'mode' => 'adaptive', 'fail_mode' => 'open_with_limit' ]
Origin / session binding
256-bit opaque tokens · alleen hash-opslag · korte TTL · binding action/session/origin · HMAC integrity · one-time atomic consume · server-only business signals · fail-closed voor kritieke actions.
UI isolation
Shadow DOM isolates Guard visuals from host CSS. It is a UI reliability layer, not a security boundary.
Localization
UI locale is BCP-47-style, UTF-8, RTL-ready, touch/keyboard compatible, and extendable with locale packs.
We nemen aan dat de aanvaller de volledige code kent.
Code, JavaScript, API, DB-schema, PoW en drempels mogen bekend zijn; secrets en autorisatie blijven op de server.
We nemen aan dat de aanvaller heeft
- volledige broncode
- moderne AI-modellen
- Playwright / Selenium / headless Chromium
- residential proxies
- captures van eigen verkeer
Beveiliging vertrouwt niet op het verbergen van
- JavaScript
- challenge-algoritmen
- veldnamen
- endpoints
- risk thresholds
Publieke code moet controleerbaarheid vergroten, niet het model verzwakken.
Het lezen van de implementatie mag geen authorization bypass opleveren. Publieke review vereist gedisciplineerde releases, keys, repository permissions en vulnerability handling.
Publiceren
- source en wijzigingshistorie
- SECURITY.md en responsible disclosure
- threat model en architectuur
- geautomatiseerde security / red-team tests
- release checksums en notes
Privé houden
- production config/guard.php
- APP_KEY en HMAC/privacy/rate-limit keys
- DB dumps en echte security events
- echte cookies/tokens/sessions
- deployment secrets en private infrastructure
Diagnostics, tests and updates
Diagnostics
php bin/diagnose.php
Check database state, key material, Origin configuration and registered actions before enabling enforcement.
Regression / red-team
bash tests/run-all.sh
Release acceptance includes replay, proxy, risk, tampering, UI and integration checks. Run disposable MariaDB/MySQL concurrency tests where available.
Updates
Read release notes and migrations first. Do not overwrite production config/guard.php with a distribution template. Rotate keys only when a release explicitly requires it.
Rollout
Start with Shadow Mode, review predicted decisions and false positives, tune action policies, then enable calibrated enforcement.
0.4.10 · pre-1.0 · actieve ontwikkeling
De huidige branch heeft security-first architecture en geautomatiseerde regression/red-team coverage. Eerst Shadow Mode, daarna enforcement kalibreren op echt verkeer.