יומן שינויים של Captcha
גרסה: 1.5.0 - שוחררה ב-2026-05-22
- חדש: מגביל קצב בעצירה מוחלטת (Hard-stop rate limiter) — סופר כל GET ו-POST בממשקים המוגנים על ידי קפטצ'ה (wp-login / register / lost-password / comments, WooCommerce my-account / checkout / pay-for-order, Ultimate Multisite checkout / inline-login) ומגיב עם HTTP 429, כותרת
Retry-After, והשהיית טרפיט (tarpit sleep) אקראית (1–5 שניות, עם תקרה מקסימלית של 15 שניות). - חדש: הגדרות
cap_rate_limit_tarpit_min/cap_rate_limit_tarpit_maxלכוונון חלון הטרפיט. - חדש: הפילטר
wu_cap_rate_limit_whitelist_ipכדי למעיל קבוצות כתובות IP מהימנות. - חדש: הפעולה
wu_cap_rate_limit_will_blockשמופעלת מיד לפני שליחת תגובת העצירה המוחלטת. - חדש: זיהוי כתובת IP של הלקוח עמיד בפני זיוף (Spoof-resistant). כעת,
Captcha_Core::get_client_ip()(המקור לאמת למפתחות סל הקצב, ל-remoteipשל captcha siteverify, ולצילומי IP הסטטיסטיקה) אוכף מודל אמון מחמיר:REMOTE_ADDRהוא הבסיס, ו-CF-Connecting-IPיכובד רק כאשר ה-peer המיידי נמצא בטווח IP פעיל של Cloudflare, ו-X-Forwarded-Forיכובד רק כאשר ה-peer המיידי נמצא ברשימת הפרוקסי המאומתים שהוגדרו על ידי המנהל, תוך מעבר מימין לשמאל שמקפיץ קפיצות מאומתות/של Cloudflare לפני שהוא מגיע לכתובת ה-IP של המבקר. - חדש: הגדרת
cap_trust_cloudflare_headers(ברירת מחדל: כבוי) — מאפשרים להאמין ב-CF-Connecting-IPכאשר מאחורי Cloudflare. ה-plugin כולל צילום CIDR של Cloudflare ומעדכן אותו מדי שבוע באמצעות wp-cron, עם גיבוי מובנה למקרה של כשל בחידוש. - חדש: הגדרת
cap_trusted_proxies— אזור טקסט (textarea) של CIDRs או כתובות IP גולמיות (אחת כל שורה, מותרות הערות#) המפרטות את הפרוקסיים / מ баланס המטעינים הקדמיים שלכם. ללא הגדרה זו,X-Forwarded-Forמתעלם גם כאשר מגביל הקצב מופעל. - חדש: זיהוי אוטומטי ראשוני של מצב Cloudflare / פרוקסי סביר, עם הודעת מנהל "החל הגדרות מזוהות" בלחיצת כפתור אחת. ה-plugin אף פעם לא דורס את הערכים השמורים שלכם; אם תעבור תנועה מאוחר יותר שמצביעה שהתצורה שלכם כבר לא תואמת למציאות (למשל, אם Cloudflare שינה טווחי CIDR וה-CIDR של הפרוקסי שלכם מיושן), תופיע הודעת אי-התאמה שאינה ניתנת להסרה המציגה את עדכון המומלץ.
- תוקן: במצב בלתי נראה (Invisible mode) כבר לא מוריד את
cap_security_levelבשקט ל-FAST — המנהל מקבל את הרמה שהוגדרה. הפילטר החדשwu_cap_server_security_levelזמין לאתרים שרוצים לוגיקה מותאמת אישית. - תוקן: המונה
rate_limits_triggeredבסטטיסטיקה עכשיו גדל על כל חסימה, ולא רק בנתיב המגן הנדיר לאחר הצלחה. - תוקן:
Captcha_Core::get_client_ip()הוא כעת המקור האחיד לאמת ייחוס ה-IP של המבקר על פני מגביל הקצב, ספקי קפטצ'ה (reCAPTCHA + hCaptchasiteverify), והסטטיסטיקה — סוגר וקטור זיוף שבו בקשות ישירות מהמקור-שרת הנושאות כותרתCF-Connecting-IPמזויפת היו ממוספרות על ידי ה-IP המזויף במקום ה-peer האמיתי. - תוקן: שער מגביל הקצב של תהליך התשלום הקלאסי של WooCommerce מופעל כעת ב-
template_redirect(תעדיפות 1) במקום ב-woocommerce_before_checkout_form. ה-hook ברמת הטופס אף פעם לא מופעל כאשר העגלה ריקה, ולכן תעבורת ה-flood שלא מוסיפה מוצר מעולם עקפה את המגביל לחלוטין. - תוקן: שער מגביל הקצב של תשלום WooCommerce (pay-for-order) מופעל כעת ב-
template_redirectבמקום ב-woocommerce_before_pay_action. האחרון מופעל רק לאחר שה-wp_verify_nonce('woocommerce-pay')מצליח, מה שאומר שמפרים לא מאומתים (מודל האיום האמיתי) מעולם לא הפעילו את המגביל. - תוקן: שער מגביל הקצב של תהליך התשלום של WooCommerce Store API (blocks) מופעל כעת ב-
rest_pre_dispatchבמקום ב-woocommerce_store_api_checkout_update_order_from_request. האחרון מופעל רק לאחר ש-Store API מאמת את שדות העגלה והחיוב, כך שמבוטים לא מאומתים קיבלו 400 מהמאמת ולעולם לא הפעילו את המגביל. - תוקן: שער מגביל הקצב של כניסה מקוצר (inline-login) של Ultimate Multisite מופעל כעת ב-
wu_ajax_nopriv_wu_inline_loginתעדיפות 1 (והמראה המקביל למשתמש מחובר) במקום ב-wu_before_inline_login. האחרון מופעל רק לאחר שה-check_ajax_referer('wu_checkout')מצליח, כך שמבוטים לא מאומתים ללא נונס תקין של wu_checkout קיבלו 403 ולעולם לא הפעילו את המגביל. - תוקן:
Rate_Limiter::enforce()מפעיל כעת מגן פעם אחת לכל בקשה (once-per-request) הממופה לפיsurface|ip, כך ש-hooks עליונים שמופעלים פעמיים לכל רינדור (במיוחדwu_setup_checkoutב-Ultimate Multisite) כבר לא מחציתים את סף מגביל הקצב האפקטיבי. - תוקן: שערים של מגביל קצב כבר לא מתייעצים עם
Captcha_Core::is_whitelisted()(פילטרwu_captcha_whitelisted). פילטר זה מסמן "הקפטצ'ה כבר טופלה על ידי משטח אחר" והוא אורתוגונלי להגנת ה-flood — שילוב WooCommerce חיבר אותו כדי לדלג על קפטצ'ת כניסת ה-WordPress כאשר נונס של Woo היה נוכח, מה שדלף לספירת הקצב ואפשר ל-POSTs של Woo לעקוף את המגביל. הפילטר הספציפי למגביל הקצב,wu_cap_rate_limit_whitelist_ip, הוא ה-bypass היחיד שמופעל כעת.
גרסה: 1.3.2 - שוחררה ב-2026-01-27
- תוקן: ווידג'ט Captcha לא נרנדר על טפסי תשלום המשתמשים ב-Elementor או ב-Page Builders אחרים.
- תוקן: אלמנט קסטום של ווידג'ט cap-widget נמחק על ידי סינון
wp_kses(). - שופר: שימוש בתוכן הניתן לקריאה (callable content) עבור שדה קפטצ'ה בתהליך התשלום כדי לעקוף סינון HTML.
- שופר: פישוט ה-JavaScript עם גיבוי למקרים קצה.
גרסה: 1.3.1 - שוחררה ב-2026-01-26
- תוקן: מצב Captcha הבלתי נראה (Invisible mode) לא פותר אוטומטית על תהליכי תשלום דינמיים של Ultimate Multisite.
- שופר: סקריפט התשלום של Captcha משתמש כעת ב-MutationObserver כדי לזהות ווידג'טים שנטענים באופן דינמי.
- שופר: הוספת חסימת כפתור התשלום כדי להמתין ל-token לפני ההגשה.
גרסה: 1.3.0 - שוחררה ב-2026-01-27
- חדש: שילוב WooCommerce Blocks עם חסימת שליפת Store API.
- חדש: תמיכה בקפטצ'ה בלתי נראית לתהליך התשלום של WooCommerce (hCaptcha invisible, reCAPTCHA v2 invisible, v3).
- חדש: דף הגדרות עצמאי לשימוש ללא Ultimate Multisite.
- חדש: Jetpack Autoloader למניעת קונפליקטים של תלויות.
- תוקן: hCaptcha לא נרנדר על תהליך תשלום דינמי של Ultimate Multisite (תוכן שנטען באמצעות AJAX).
- תוקן: Captcha לא מתעדכן/מאופס כאשר מתרחשים שגיאות אימות טופס.
- תוקן: hCaptcha לא מוצג בדף תשלום של WooCommerce.
- תוקן: ש גיאת "reCAPTCHA class not found" (נוספה ספריית PHP google/recaptcha).
- שופר: זיהוי שגיאות באמצעות hooks של WordPress, MutationObserver, ו-AJAX interception.
- שופר: תיאורי הגדרות כוללים כעת כתובות URL של ה-dashboard עבור מפתחות API.
גרסה: 1.2.2 - שוחררה ב-2026-01-24
- תוקן: Captcha לא מוצג על אלמנט טופס של Ultimate Multisite Login Form (אי-התאמת שם הפילטר).
- תוקן: HTML של ווידג'ט cap widget נמחק על ידי סינון
wp_kses(). - תוקן: בוררי JavaScript לא מוצאים טפסים עם מקפים (slashes) במזהי האלמנטים.
- נוסף: hook פילטר
wu_kses_allowed_htmlעבור classaddons להרחבת תגיות ה-HTML המותרות. - הוסר: קבצי JavaScript מתים הוחלפו בסקריפטים ספציפיים לספק.
גרסה: 1.2.1 - שוחררה ב-2026-01-23
- תוקן: אימות טוקן Captcha נכשל בסביבות MultiSite (משתמש כעת ב-transients ברמת הרשת).
- תוקן: Captcha מופיע עכשיו באופן עקבי עבור כל המשתמשים ללא קשר למצב ההתחברות.
- תוקן: אי-התאמה בין רינדור Captcha לאימות שגרמה לכשלים בתהליך התשלום.
גרסה: 1.2.0 - שוחררה ב-2026-01-21
- חדש: Cap Captcha - קפטצ'ה מבוססת הוכחת עבודה (proof-of-work) מארחת עצמית, מופעלת כברירת מחדל בהפעלה.
- חדש: הגנת Zero-configuration - הפעילו את ה-addon ואתכם מוגנים מיד.
- חדש: ארכיטקטורת ספק קפטצ'ה פולימורפית להרחבה קלה.
- חדש: הגנת תהליך תשלום WooCommerce Store API מפני התקפות בדיקת כרטיסים (card testing).
- חדש: לוח מחוונים למעקב סטטיסטיקה המציג אתגרים, אימותים והתקפות חסומות.
- חדש: הגדרות מראש לרמת אבטחה (Fast, Medium, Max) לקושי של Cap Captcha.
- חדש: מחלקות בסיס מופשטות (Abstract base classes) עבור ספקי reCAPTCHA ו-hCaptcha.
- שופר: ארגון מחדש של קוד הבסיס למחלקות ספקים מודולריות.
- שופר: הפרדה טובה יותר של תחומי אחריות עם מחלקת מנהל ייעודית.
- תוקן: שיפורי אבטחה לסינון משתנה $_SERVER.
- תוקן: תצורת בדיקות PHPUnit עבור קונבנציות שמות של WordPress.
גרסה: 1.0.1 - שוחררה ב-2025-09-28
- שינוי קידומת ל-ultimate-multisite; עדכון תחום הטקסט; העלאת גרסה.