2IZI Guard · 0.4.10 · PRE-1.0

Documentatie

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.

Voor applicatieacties

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.

PHP 8.1+Core runtime
MariaDB / MySQLBaseline storage
0required outbound runtime calls
256-bitopaque token entropy
PRE-1.0De huidige branch heeft security-first architecture en geautomatiseerde regression/red-team coverage. Eerst Shadow Mode, daarna enforcement kalibreren op echt verkeer.
Quick start

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

FrontendHTML
<script src="/guard/public/assets/guard.js?v=0.4.10" defer></script>
<form data-guard-action="contact">
  …
</form>

2. Protected action

Beschermde actionPHP
$result = Guard::verifyAndConsume(
    $_POST['guard_token'] ?? '',
    'contact'
);

if (!$result->allowed()) {
    http_response_code(403);
    exit;
}

Typische actions

loginregisterpassword_resetcontactcheckoutfile_upload
Server authorityJavaScript-succes is geen autorisatie. De server verifieert en consumeert het Guard-token.
Hoe het werkt

Eén beschermde action. Vijf onafhankelijke checkpoints.

De browser kan aan de challenge deelnemen, maar business permission wordt altijd door de server uitgegeven en verbruikt.

01

Context valideren

Origin, action, session en grove limieten voor duur werk controleren.

02

Lokaal scoren

Server- en applicatiesignalen leveren een uitlegbare risicobeslissing.

03

Frictie toevoegen

Policy kiest PASS, PoW, interaction, throttle of deny.

04

Eenmalig uitgeven

Willekeurig 256-bit opaque token binden aan session/action/origin en korte TTL.

05

Atomair consumeren

Business endpoint consumeert eenmaal; replay, mismatch en expiry worden geweigerd.

Policy modes

ShadowObserve and predict; no enforcement.
InvisibleNo visible challenge.
AdaptiveRisk-based PASS / PoW / interaction / deny.
Always challengeRequire step-up for every protected request.

Vertrouwd verkeer kan stil passeren; hoger risico kan PoW, hold, throttle of deny activeren.

Integratie

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.

Dreigingsmodel

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
Kerninvarianten256-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.
Eerlijke beperkingGeen browser challenge kan “biologisch mens” wiskundig bewijzen. Kritieke actions vereisen nog steeds passkey/WebAuthn, MFA, verified accounts, transactieautorisatie en business limits.
Open source

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
Operations

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.

Huidige status

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.

PHP coreBeschikbaar
Webasyst / Shop-Script adapterNa stabilisatie van core
Verified agents / Privacy PassToekomst / afhankelijk van standaarden
0.4.10The responsive-layout hotfix changes UI sizing and preview embedding only; database schema, token/challenge protocol, keys, risk engine and server authorization logic are unchanged.

Taal

EnglishEnglishРусскийRussian简体中文Chinese (Simplified)繁體中文Chinese (Traditional)日本語Japanese한국어KoreanDeutschGermanFrançaisFrenchEspañolSpanishItalianoItalianPortuguês (Brasil)Portuguese (Brazil)العربيةArabicעבריתHebrewTürkçeTurkishPolskiPolishNederlandsDutchBahasa IndonesiaIndonesianTiếng ViệtVietnameseहिन्दीHindiPortuguês (Portugal)Portuguese (Portugal)ČeštinaCzechRomânăRomanianMagyarHungarianΕλληνικάGreekSvenskaSwedishNorskNorwegianDanskDanishSuomiFinnishไทยThai