SELF-HOSTED SECURITY · PRE-1.0

Защита от ботов, где решение о доверии остаётся на вашем сервере.

2IZI Guard защищает формы и публичные действия: риск оценивается локально, нагрузка проверки адаптируется к ситуации, а окончательное разрешение выдаётся одноразовым серверным токеном. Обязательной внешней CAPTCHA нет.

В ядре нет обязательных Google, Яндекс, Cloudflare, внешних API, CDN или сторонней телеметрии.
PHP 8.1+AdaptiveShadow ModePrivacy-first
2IZI Guardlocal decision surface
actionregister
origin2iziguard.com
sessionbound
modeAdaptive
local risk18/100
PASSsilent
01
Context
02
Risk
03
Challenge
04
Token
05
Consume
0required third-party calls
256-bitopaque token
HMACstate integrity
atomic consume
0обязательных внешних runtime-запросов
256-bitэнтропия opaque-токена
привязка action / session / origin
атомарное одноразовое погашение
Защита действий приложения

Безопасность решает сервер, а не состояние виджета.

Видимая проверка — лишь один слой. Guard защищает серверное действие до запуска бизнес-операции.

Локально по умолчанию

Оценка риска, проверка challenge и авторизация остаются внутри проекта. Внешние провайдеры могут быть опцией, но не обязательны.

Решает сервер

Успех JavaScript не является разрешением. Защищённый endpoint проверяет и погашает Guard-токен на сервере.

Адаптивная нагрузка

Доверенный трафик может пройти незаметно. Повышенный риск может включить Proof-of-Work, удержание, ограничение частоты или отказ.

Контроль скорости

Лимиты могут учитывать сеть, Guard-сессию, аккаунт, action и глобальный трафик сайта — не только IP.

Privacy-first сигналы

IP и браузерные сигналы не считаются личностью. Guard предпочитает короткоживущее first-party состояние и не включает агрессивный fingerprinting по умолчанию.

Объяснимые решения

Risk Engine сохраняет reason codes и прогнозы Shadow Mode для настройки, не раскрывая внутреннюю оценку атакующему.

Как работает

Одно защищённое действие. Пять независимых контрольных точек.

Браузер может участвовать в challenge, но разрешение на бизнес-действие всегда выдаёт и погашает сервер.

01

Проверка контекста

Origin, action, session и базовые лимиты проверяются до дорогих операций.

02

Локальная оценка

Серверные и прикладные сигналы формируют объяснимое решение по риску.

03

Адаптивная проверка

Политика выбирает PASS, Proof-of-Work, интерактивную проверку, throttle или deny.

04

Одноразовый токен

Случайный 256-битный opaque-токен привязывается к session, action, origin и короткому TTL.

05

Атомарное погашение

Бизнес-endpoint использует токен ровно один раз; replay, mismatch и expiry отклоняются.

Модель угроз

Предполагаем, что атакующий знает весь исходный код.

2IZI Guard следует Kerckhoffs-style модели: исходники, JavaScript, API-контракт, схема БД, PoW и пороги могут быть известны. Защита должна сохраняться, потому что секреты и авторизация находятся на сервере.

Считаем, что у атакующего есть
  • полный исходный код
  • современные AI-модели
  • Playwright / Selenium / headless Chromium
  • residential proxy
  • записи собственного трафика
Безопасность не зависит от скрытия
  • JavaScript
  • алгоритмов challenge
  • имён полей
  • endpoint-ов
  • risk thresholds
Открытый код

Публичный код должен усиливать проверяемость, а не ослаблять модель.

Чтение реализации не должно давать обход авторизации. Публичный аудит полезен, если релизы, ключи, права репозитория и обработка уязвимостей организованы дисциплинированно.

Публикуем

  • исходный код и историю изменений
  • SECURITY.md и responsible disclosure
  • threat model и архитектуру
  • автоматические security / red-team тесты
  • контрольные суммы и release notes

Оставляем закрытым

  • production config/guard.php
  • APP_KEY и HMAC/privacy/rate-limit ключи
  • дампы БД и реальные security events
  • реальные cookies, tokens и sessions
  • секреты деплоя и приватные детали инфраструктуры
Интеграция

Минимальная поверхность интеграции. Окончательное решение — на сервере.

Текущее ядро рассчитано на PHP 8.1+ и не зависит от framework на границе безопасности. Каждое action защищается явно, а токен погашается до выполнения бизнес-операции.

Типовые actionsloginregisterpassword_resetcontactcheckoutfile_upload
FrontendHTML
<script src="/guard/public/assets/guard.js" defer></script>
<form data-guard-action="contact">
  …
</form>
Защищённое действиеPHP
$result = Guard::verifyAndConsume(
  $_POST['guard_token'] ?? '',
  'contact'
);
if (!$result->allowed()) { http_response_code(403); exit; }
PRE-1.0
Текущий статус

0.4.10 · pre-1.0 · активная разработка

Текущая ветка имеет security-first архитектуру и автоматические regression/red-team тесты. Внедрять постепенно: сначала Shadow Mode, затем настроенный enforcement на реальном трафике.

PHP coreДоступно
Webasyst / Shop-Script adapterПосле стабилизации ядра
Verified agents / Privacy PassБудущее / зависит от стандартов
Release0.4.10
FAQ

Точные обещания. Чёткие ограничения.

Публичный код упростит взлом?+
Он упрощает изучение реализации — именно поэтому безопасность не должна зависеть от obscurity. Ошибки всё равно возможны; публичный аудит, тесты и responsible disclosure помогают находить их раньше.
Guard заменяет MFA, passkey или WAF?+
Нет. Guard — слой anti-automation и abuse protection. Критичные аккаунты и транзакции всё равно требуют аутентификации, авторизации, CSRF, MFA/passkey и инфраструктурных контролей.
Нужен ли ядру доступ в интернет?+
Для основной защиты обязательные исходящие запросы не нужны. Обновления, репозиторий и будущие опциональные attestation-провайдеры отделены.
Может ли сложный бот пройти интерактивную проверку?+
Да. Управляемый браузер, AI и solver farm могут имитировать взаимодействие. Поэтому challenge не является финальным разрешением: остаются серверный контекст, rate limits, tokens и business policy.

Создайте защиту, которую можно проверить.

Локальный runtime. Авторизация на сервере. Публичная модель угроз. Без обязательной внешней CAPTCHA.

Язык

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