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.
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
<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;
}Action umum
loginregisterpassword_resetcontactcheckoutfile_uploadSatu action terlindungi. Lima checkpoint independen.
Browser dapat ikut challenge, tetapi business permission selalu diterbitkan dan dikonsumsi server.
Validasi konteks
Periksa Origin, action, session dan limit awal sebelum kerja mahal.
Nilai lokal
Sinyal server dan aplikasi menghasilkan keputusan risiko yang dapat dijelaskan.
Tambah friction
Policy memilih PASS, PoW, interaction, throttle atau deny.
Terbitkan sekali
Token opaque acak 256-bit terikat ke session/action/origin dan TTL pendek.
Konsumsi atomik
Business endpoint mengonsumsi sekali; replay, mismatch dan expiry ditolak.
Policy modes
Traffic tepercaya dapat lewat diam-diam; risiko tinggi dapat memicu PoW, hold, throttle atau deny.
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.
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
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
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 · 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.