אבטחה היא החלטת שרת, לא מצב של widget.
2IZI Guard מגן על טפסים ופעולות ציבוריות באמצעות הערכת סיכון מקומית, חיכוך אדפטיבי ואסימוני הרשאה חד-פעמיים מהשרת. אין CAPTCHA חיצונית חובה.
משטח אינטגרציה קטן. ההרשאה הסופית נשארת בשרת.
ה-core הנוכחי מיועד ל-PHP 8.1+ ואינו תלוי framework בגבול האבטחה. מגינים על כל action במפורש וצורכים token לפני הפעולה העסקית.
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;
}Actions נפוצות
loginregisterpassword_resetcontactcheckoutfile_uploadAction אחת מוגנת. חמש נקודות בדיקה עצמאיות.
הדפדפן יכול להשתתף ב-challenge, אבל ההרשאה העסקית תמיד מונפקת ונצרכת בשרת.
אימות הקשר
בדיקת Origin, action, session ומגבלות בסיס לפני עבודה יקרה.
הערכת סיכון מקומית
אותות שרת ואפליקציה מייצרים החלטת סיכון מוסברת.
הוספת friction
ה-policy בוחרת PASS, PoW, interaction, throttle או deny.
הנפקה חד-פעמית
Token אקראי 256-bit נקשר ל-session/action/origin ול-TTL קצר.
צריכה אטומית
ה-endpoint העסקי צורך פעם אחת ודוחה replay, mismatch ו-expiry.
Policy modes
תעבורה מהימנה יכולה לעבור בשקט; סיכון גבוה יכול להפעיל PoW, hold, throttle או deny.
Integration contract
ה-core הנוכחי מיועד ל-PHP 8.1+ ואינו תלוי framework בגבול האבטחה. מגינים על כל action במפורש וצורכים token לפני הפעולה העסקית.
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
opaque tokens 256-bit · שמירת hash בלבד · TTL קצר · binding action/session/origin · HMAC integrity · one-time atomic consume · server-only business signals · fail-closed לפעולות קריטיות.
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.
אנו מניחים שהתוקף מכיר את כל הקוד.
הקוד, JavaScript, API, סכמת DB, PoW והספים יכולים להיות ידועים; הסודות וההרשאה נשארים בשרת.
מניחים שלתוקף יש
- קוד מקור מלא
- מודלי AI מודרניים
- Playwright / Selenium / headless Chromium
- residential proxies
- הקלטות של התעבורה שלו
האבטחה אינה תלויה בהסתרת
- JavaScript
- אלגוריתם challenge
- שמות שדות
- endpoints
- risk thresholds
קוד ציבורי צריך להגביר ביקורתיות, לא להחליש את המודל.
קריאת המימוש לא אמורה ליצור authorization bypass. ביקורת ציבורית דורשת releases מסודרים, מפתחות, הרשאות repository וטיפול בפגיעויות.
לפרסם
- קוד והיסטוריית שינויים
- SECURITY.md וresponsible disclosure
- threat model וארכיטקטורה
- בדיקות security / red-team אוטומטיות
- checksums וrelease notes
להשאיר פרטי
- production config/guard.php
- APP_KEY ומפתחות HMAC/privacy/rate-limit
- DB dumps וsecurity events אמיתיים
- cookies/tokens/sessions אמיתיים
- סודות deployment ותשתית פרטית
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 · פיתוח פעיל
ה-branch הנוכחי security-first וכולל בדיקות regression/red-team אוטומטיות. מתחילים ב-Shadow Mode ואז מכיילים enforcement על תעבורה אמיתית.