2IZI Guard · 0.4.10 · PRE-1.0

Dokumentace

Současný core cílí na PHP 8.1+ a je framework-independent na security boundary. Každou action chraňte explicitně a token spotřebujte před business operation.

Pro aplikační akce

Bezpečnost je rozhodnutí serveru, ne stav widgetu.

2IZI Guard chrání formuláře a veřejné akce lokálním hodnocením rizika, adaptivním třením a jednorázovými serverovými tokeny. Bez povinného externího CAPTCHA runtime.

PHP 8.1+Core runtime
MariaDB / MySQLBaseline storage
0required outbound runtime calls
256-bitopaque token entropy
PRE-1.0Současný branch má security-first architecture a automatické regression/red-team coverage. Nejdřív Shadow Mode, pak kalibrace enforcement na reálném provozu.
Quick start

Malá integrační plocha. Finální povolení zůstává na serveru.

Současný core cílí na PHP 8.1+ a je framework-independent na security boundary. Každou action chraňte explicitně a token spotřebujte před 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

Chráněná actionPHP
$result = Guard::verifyAndConsume(
    $_POST['guard_token'] ?? '',
    'contact'
);

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

Typické actions

loginregisterpassword_resetcontactcheckoutfile_upload
Server authorityÚspěch JavaScriptu není autorizace. Server ověří a spotřebuje Guard token.
Jak to funguje

Jedna chráněná action. Pět nezávislých kontrolních bodů.

Prohlížeč se může účastnit challenge, ale business permission vždy vydává a spotřebovává server.

01

Ověřit kontext

Zkontrolovat Origin, action, session a základní limity před drahou prací.

02

Vyhodnotit lokálně

Serverové a aplikační signály vytvoří vysvětlitelné rozhodnutí o riziku.

03

Přidat tření

Policy volí PASS, PoW, interaction, throttle nebo deny.

04

Vydat jednou

Náhodný 256-bit opaque token navázat na session/action/origin a krátké TTL.

05

Atomicky spotřebovat

Business endpoint spotřebuje jednou; replay, mismatch a expiry se odmítnou.

Policy modes

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

Důvěryhodný provoz může projít bez zásahu; vyšší riziko může spustit PoW, hold, throttle nebo deny.

Integrace

Integration contract

Současný core cílí na PHP 8.1+ a je framework-independent na security boundary. Každou action chraňte explicitně a token spotřebujte před 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 · pouze hash storage · krátké TTL · binding action/session/origin · HMAC integrity · one-time atomic consume · server-only business signals · fail-closed pro kritické 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.

Model hrozeb

Předpokládáme, že útočník zná celý kód.

Kód, JavaScript, API, DB schema, PoW i prahy mohou být známé; tajemství a autorizace zůstávají na serveru.

Předpokládáme, že útočník má

  • kompletní source
  • moderní AI modely
  • Playwright / Selenium / headless Chromium
  • residential proxy
  • záznamy vlastního provozu

Bezpečnost nespoléhá na skrytí

  • JavaScript
  • challenge algoritmů
  • názvů polí
  • endpointů
  • risk thresholds
Klíčové invarianty256-bit opaque tokens · pouze hash storage · krátké TTL · binding action/session/origin · HMAC integrity · one-time atomic consume · server-only business signals · fail-closed pro kritické actions.
Poctivý limitŽádný browser challenge neumí matematicky dokázat „biologického člověka“. Kritické actions stále potřebují passkey/WebAuthn, MFA, verified accounts, autorizaci transakcí a business limits.
Open source

Veřejný kód má zvýšit auditovatelnost, ne oslabit model.

Čtení implementace nesmí vytvořit authorization bypass. Veřejný review vyžaduje disciplinované releases, keys, repository permissions a vulnerability handling.

Publikovat

  • source a historii změn
  • SECURITY.md a responsible disclosure
  • threat model a architekturu
  • automatické security / red-team tests
  • release checksum a notes

Držet soukromé

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

Aktuální stav

0.4.10 · pre-1.0 · aktivní vývoj

Současný branch má security-first architecture a automatické regression/red-team coverage. Nejdřív Shadow Mode, pak kalibrace enforcement na reálném provozu.

PHP coreDostupný
Webasyst / Shop-Script adapterPo stabilizaci core
Verified agents / Privacy PassBudoucnost / závislé na standardech
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.

Jazyk

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