2IZI Guard · 0.4.10 · PRE-1.0

Dokumentasi

Core saat ini menargetkan PHP 8.1+ dan framework-independent pada security boundary. Lindungi setiap action secara eksplisit dan konsumsi token sebelum business operation.

Untuk aksi aplikasi

Keamanan adalah keputusan server, bukan status widget.

2IZI Guard melindungi formulir dan aksi publik dengan penilaian risiko lokal, friksi adaptif, dan token otorisasi server sekali pakai. Tanpa runtime CAPTCHA eksternal wajib.

PHP 8.1+Core runtime
MariaDB / MySQLBaseline storage
0required outbound runtime calls
256-bitopaque token entropy
PRE-1.0Branch saat ini memakai security-first architecture dan regression/red-team coverage otomatis. Mulai dari Shadow Mode lalu kalibrasi enforcement pada traffic nyata.
Quick start

Permukaan integrasi kecil. Izin akhir tetap di server.

Core saat ini menargetkan PHP 8.1+ dan framework-independent pada security boundary. Lindungi setiap action secara eksplisit dan konsumsi token sebelum 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

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

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

Action umum

loginregisterpassword_resetcontactcheckoutfile_upload
Server authorityKeberhasilan JavaScript bukan otorisasi. Server memverifikasi dan mengonsumsi Guard token.
Cara kerja

Satu action terlindungi. Lima checkpoint independen.

Browser dapat ikut challenge, tetapi business permission selalu diterbitkan dan dikonsumsi server.

01

Validasi konteks

Periksa Origin, action, session dan limit awal sebelum kerja mahal.

02

Nilai lokal

Sinyal server dan aplikasi menghasilkan keputusan risiko yang dapat dijelaskan.

03

Tambah friction

Policy memilih PASS, PoW, interaction, throttle atau deny.

04

Terbitkan sekali

Token opaque acak 256-bit terikat ke session/action/origin dan TTL pendek.

05

Konsumsi atomik

Business endpoint mengonsumsi sekali; replay, mismatch dan expiry ditolak.

Policy modes

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

Traffic tepercaya dapat lewat diam-diam; risiko tinggi dapat memicu PoW, hold, throttle atau deny.

Integrasi

Integration contract

Core saat ini menargetkan PHP 8.1+ dan framework-independent pada security boundary. Lindungi setiap action secara eksplisit dan konsumsi token sebelum 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 token · simpan hash saja · TTL pendek · binding action/session/origin · HMAC integrity · one-time atomic consume · server-only business signals · fail-closed untuk action kritis.

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 ancaman

Anggap penyerang mengetahui seluruh kode.

Source, JavaScript, API, skema DB, PoW, dan threshold boleh diketahui; secret dan otorisasi tetap di server.

Anggap penyerang memiliki

  • source lengkap
  • model AI modern
  • Playwright / Selenium / headless Chromium
  • residential proxy
  • rekaman traffic miliknya

Keamanan tidak bergantung pada menyembunyikan

  • JavaScript
  • algoritma challenge
  • nama field
  • endpoint
  • risk threshold
Invarian inti256-bit opaque token · simpan hash saja · TTL pendek · binding action/session/origin · HMAC integrity · one-time atomic consume · server-only business signals · fail-closed untuk action kritis.
Batas jujurTidak ada browser challenge yang bisa membuktikan “manusia biologis” secara matematis. Action kritis tetap membutuhkan passkey/WebAuthn, MFA, verified account, transaction authorization dan business limit.
Sumber terbuka

Kode publik harus meningkatkan auditabilitas, bukan melemahkan model.

Membaca implementasi tidak boleh menghasilkan authorization bypass. Review publik membutuhkan release, key, repository permission dan vulnerability handling yang disiplin.

Publikasikan

  • source dan riwayat perubahan
  • SECURITY.md dan responsible disclosure
  • threat model dan arsitektur
  • test security / red-team otomatis
  • release checksum dan notes

Tetap privat

  • production config/guard.php
  • APP_KEY dan HMAC/privacy/rate-limit keys
  • DB dump dan security events nyata
  • cookie/token/session nyata
  • deployment secret dan 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.

Status saat ini

0.4.10 · pre-1.0 · pengembangan aktif

Branch saat ini memakai security-first architecture dan regression/red-team coverage otomatis. Mulai dari Shadow Mode lalu kalibrasi enforcement pada traffic nyata.

PHP coreTersedia
Webasyst / Shop-Script adapterSetelah core stabil
Verified agents / Privacy PassMasa depan / tergantung standar
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.

Bahasa

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