로컬 우선
위험 평가, challenge 검증, 권한 부여가 프로젝트 안에서 동작합니다.
2IZI Guard는 로컬 위험 평가, 적응형 마찰, 일회용 서버 권한 토큰으로 폼과 공개 작업을 보호합니다. 외부 CAPTCHA 런타임은 필수가 아닙니다.
보이는 challenge는 한 층일 뿐입니다. Guard는 비즈니스 작업 전에 서버 action을 보호합니다.
위험 평가, challenge 검증, 권한 부여가 프로젝트 안에서 동작합니다.
JavaScript 성공은 권한이 아닙니다. 보호 endpoint가 서버에서 Guard token을 검증하고 소비합니다.
신뢰 트래픽은 조용히 통과하고, 위험이 높으면 PoW·hold·throttle·deny가 적용됩니다.
network, Guard session, account, action, site-wide 제한을 결합할 수 있습니다.
IP와 브라우저 신호를 신원으로 보지 않으며 침습적 fingerprinting을 기본 사용하지 않습니다.
Risk Engine은 reason codes와 Shadow Mode 예측을 남겨 조정에 사용합니다.
브라우저는 challenge에 참여할 수 있지만 비즈니스 권한은 항상 서버가 발급하고 소비합니다.
비싼 작업 전에 Origin, action, session, 기본 제한을 확인합니다.
서버와 애플리케이션 신호로 설명 가능한 결정을 만듭니다.
정책이 PASS, PoW, interaction, throttle, deny를 선택합니다.
무작위 256-bit opaque token을 session/action/origin/짧은 TTL에 묶습니다.
비즈니스 endpoint가 한 번만 소비하고 replay, mismatch, expiry를 거부합니다.
소스, JavaScript, API, DB schema, PoW, threshold가 알려져도 비밀과 권한은 서버에 남아야 합니다.
구현을 읽는 것만으로 authorization bypass가 생기면 안 됩니다. 공개 검토는 엄격한 release, key, repository permission, vulnerability handling과 함께해야 합니다.
현재 core는 PHP 8.1+ 대상이며 security boundary는 framework에 종속되지 않습니다. 각 action을 명시적으로 보호하고 비즈니스 작업 전에 token을 소비합니다.
<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; }
현재 branch는 security-first architecture와 자동 regression/red-team coverage를 갖습니다. 먼저 Shadow Mode로 배포한 뒤 실제 traffic에서 enforcement를 조정하세요.