2IZI Guard · 0.4.10 · PRE-1.0

Dokumentation

Nuvarande core riktar sig till PHP 8.1+ och är framework-independent vid security boundary. Skydda varje action explicit och konsumera token före business operation.

För applikationsåtgärder

Säkerhet är ett serverbeslut, inte ett widgettillstånd.

2IZI Guard skyddar formulär och publika åtgärder med lokal riskbedömning, adaptiv friktion och engångstoken från servern. Ingen obligatorisk extern CAPTCHA-runtime.

PHP 8.1+Core runtime
MariaDB / MySQLBaseline storage
0required outbound runtime calls
256-bitopaque token entropy
PRE-1.0Nuvarande branch har security-first architecture och automatisk regression/red-team coverage. Börja med Shadow Mode och kalibrera enforcement på riktig trafik.
Quick start

Liten integrationsyta. Slutligt tillstånd stannar server-side.

Nuvarande core riktar sig till PHP 8.1+ och är framework-independent vid security boundary. Skydda varje action explicit och konsumera token före 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

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

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

Typiska actions

loginregisterpassword_resetcontactcheckoutfile_upload
Server authorityJavaScript-framgång är inte auktorisering. Servern verifierar och konsumerar Guard-token.
Så fungerar det

En skyddad action. Fem oberoende checkpoints.

Browsern kan delta i challenge, men business permission utfärdas och konsumeras alltid av servern.

01

Validera context

Kontrollera Origin, action, session och grova limits före dyrt arbete.

02

Bedöm lokalt

Server- och applikationssignaler ger ett förklarbart riskbeslut.

03

Lägg till friktion

Policy väljer PASS, PoW, interaction, throttle eller deny.

04

Utfärda en gång

Slumpmässigt 256-bit opaque token binds till session/action/origin och kort TTL.

05

Konsumera atomiskt

Business endpoint konsumerar en gång; replay, mismatch och expiry avvisas.

Policy modes

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

Betrodd trafik kan passera tyst; högre risk kan utlösa PoW, hold, throttle eller deny.

Integration

Integration contract

Nuvarande core riktar sig till PHP 8.1+ och är framework-independent vid security boundary. Skydda varje action explicit och konsumera token före 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 · hash-only storage · kort TTL · binding action/session/origin · HMAC integrity · one-time atomic consume · server-only business signals · fail-closed critical 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.

Hotmodell

Vi antar att angriparen känner hela koden.

Kod, JavaScript, API, DB-schema, PoW och trösklar kan vara kända; hemligheter och auktorisering stannar på servern.

Vi antar att angriparen har

  • fullständig source code
  • moderna AI-modeller
  • Playwright / Selenium / headless Chromium
  • residential proxies
  • captures av egen trafik

Security förlitar sig inte på att dölja

  • JavaScript
  • challenge algorithms
  • field names
  • endpoints
  • risk thresholds
Core invariants256-bit opaque tokens · hash-only storage · kort TTL · binding action/session/origin · HMAC integrity · one-time atomic consume · server-only business signals · fail-closed critical actions.
Ärlig begränsningIngen browser challenge kan matematiskt bevisa “biologisk människa”. Critical actions behöver fortfarande passkey/WebAuthn, MFA, verified accounts, transaction authorization och business limits.
Öppen källkod

Publik kod ska öka granskningsbarheten, inte försvaga modellen.

Att läsa implementation får inte skapa authorization bypass. Public review kräver disciplinerade releases, keys, repository permissions och vulnerability handling.

Publicera

  • source och ändringshistorik
  • SECURITY.md och responsible disclosure
  • threat model och architecture
  • automatiserade security / red-team tests
  • release checksums och notes

Håll privat

  • production config/guard.php
  • APP_KEY och HMAC/privacy/rate-limit keys
  • DB dumps och riktiga security events
  • riktiga cookies/tokens/sessions
  • deployment secrets och 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.

Aktuell status

0.4.10 · pre-1.0 · aktiv utveckling

Nuvarande branch har security-first architecture och automatisk regression/red-team coverage. Börja med Shadow Mode och kalibrera enforcement på riktig trafik.

PHP coreTillgänglig
Webasyst / Shop-Script adapterEfter core-stabilisering
Verified agents / Privacy PassFramtid / standardberoende
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.

Språk

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