Local by default
Risk evaluation, challenge verification and authorization stay inside your project. External providers are optional, not required.
2IZI Guard protects forms and public actions with local risk evaluation, adaptive friction, and single-use server authorization tokens. No mandatory external CAPTCHA runtime.
A visible challenge is only one layer. Guard protects the server-side action before the business operation is allowed to run.
Risk evaluation, challenge verification and authorization stay inside your project. External providers are optional, not required.
JavaScript success is never authorization. The protected endpoint verifies and consumes the Guard token on the server.
Trusted traffic can pass silently. Higher risk can trigger Proof-of-Work, hold-to-confirm, throttling or denial.
Rate limits can combine network, Guard session, account, action and site-wide context instead of trusting IP alone.
IP and browser signals are not treated as identity. Guard favors short-lived first-party state and avoids invasive fingerprinting by default.
Risk decisions retain reason codes and Shadow Mode predictions for tuning without exposing internal scoring to the requester.
The browser can participate in the challenge, but permission to run the business action is always issued and consumed by the server.
Origin, action, session and coarse limits are checked before expensive work.
Server and application signals produce an explainable risk decision.
The policy can choose PASS, Proof-of-Work, interaction, throttle or deny.
A random 256-bit opaque token is bound to session, action, origin and a short TTL.
The business endpoint consumes the token once; replay, mismatch and expiry are rejected.
2IZI Guard follows a Kerckhoffs-style assumption: source code, JavaScript, API contract, database schema, PoW algorithm and thresholds may be known. Security must still hold because secrets and authorization remain server-side.
Reading the implementation must not create an authorization bypass. Public review is useful when releases, keys, repository permissions and vulnerability handling are disciplined.
The current core targets PHP 8.1+ and is framework-independent at the security boundary. Protect each action explicitly and consume the token before running the business operation.
<script src="/guard/public/assets/guard.js" defer></script> <form data-guard-action="contact"> … </form>
$result = Guard::verifyAndConsume( $_POST['guard_token'] ?? '', 'contact' ); if (!$result->allowed()) { http_response_code(403); exit; }
The current branch has a security-first architecture and automated regression/red-team coverage. Deploy gradually: Shadow Mode first, then calibrated enforcement on real traffic.
Local runtime. Server authorization. Public threat model. No mandatory external CAPTCHA dependency.