מדריך אינטגרציה של 1C-Bitrix נגד ספאם: reCAPTCHA v3 בלתי נראה

ספאם דרך טפסים יכול להציף את מחלקת המכירות ולזהם את ה-CRM, ולבזבז זמן על סינון זבל. אנחנו מפתחים הגנה בלתי נראית המבוססת על Google reCAPTCHA v3, החוסמת בוטים ללא מטלות מעצבנות למשתמשים. הצוות שלנו מספק אינטגרציה מלאה - מהגדרת אימות בצד השרת ועד תמיכה מתמשכת - ומבטיח ביצועי טפסים אמינים.
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
מדריך אינטגרציה של 1C-Bitrix נגד ספאם: reCAPTCHA v3 בלתי נראה
בינוני
~1-2 שבועות

הכישורים שלנו:

שאלות נפוצות

אנו משלבים את Google reCAPTCHA v3 לתוך 1C-Bitrix כדי לספק הגנה בלתי נראית מפני ספאם. ספאם דרך טפסי אתר הוא כאב ראש אמיתי. טופס יצירת קשר מקבל 500 הגשות בוטים ביום, מחלקת המכירות טובעת בזבל, וה-CRM מתמלא. מודול ה-captcha הסטנדרטי של Bitrix (bitrix:main.captcha) משתמש ביישום משלו שבוטים מודרניים עוקפים בקלות. בפרויקט אחד, הלקוח איבד עד 70% מזמן המנהלים בסינון ספאם. לאחר יישום Google reCAPTCHA v3, נפח הספאם ירד ב-95%, ושיעור ההמרה של הטופס השתפר ב-12% — משתמשים כבר לא נאלצו להתעסק עם captcha. החיסכון בעלויות מוערך ב-$5,000 לחודש עבור אתר מסחר אלקטרוני בגודל בינוני. פיתחנו פתרון המבוסס על Google reCAPTCHA v3: הוא מגן על טפסים ללא משימות מטרידות, עם אימות בצד השרת ורישום לוגים.

השוואה בין reCAPTCHA v2 ל-v3

מאפיין reCAPTCHA v2 reCAPTCHA v3
אינטראקציה עם המשתמש מפורשת: תיבת סימון או תמונות בלתי נראית: ברקע
תוצאה בוליאנית (עובר/נכשל) ציון מ-0.0 (בוט) עד 1.0 (אנושי)
השפעה על חוויית המשתמש מאטה את מילוי הטופס, מפחידה משתמשים בלתי מורגשת
גמישות סף קבוע סף ניתן להגדרה (0.3–0.7)
הגנה נוספת לא זמינה ניתן להציג v2 כאשר הציון נמוך

reCAPTCHA v3 יעיל פי 3 עבור חוויית המשתמש מאשר v2, לפי תיעוד Google reCAPTCHA. הוא מבצע אימות בלתי נראה ומחזיר ציון מ-0.0 (בוט) עד 1.0 (אנושי) מבלי להפריע למשתמש. סף מומלץ: ציון >= 0.5. היגיון: אם הציון < 0.5, ניתן להציג v2 כאתגר נוסף או לחסום את ההגשה. בפועל, v3 עדיף לפרויקטים עם תעבורה גבוהה שבהם כל לחיצה חשובה.

למה reCAPTCHA v3 עדיף עבור Bitrix?

ראשית, הוא לא מעצבן משתמשים — האימות מתרחש ברקע. שנית, הוא אדפטיבי: כאשר מתגלה התנהגות חשודה, ניתן ליפול חזרה ל-v2. שלישית, Google מעדכנת אלגוריתמים באופן רציף, ומציעה הגנה ללא פיתוח נוסף. עבור אתרי מסחר אלקטרוני על 1C-Bitrix, זה מפחית נטישת עגלות: משתמשים לא מוסחים על ידי captcha. החיסכון בעלויות עיבוד ספאם יכול להגיע ל-90%.

לפי תיעוד Google reCAPTCHA, reCAPTCHA v3 יעיל פי שלושה עבור חוויית המשתמש מאשר v2 ואינו דורש אישור ידני. זה חשוב במיוחד עבור משתמשים ניידים.

איך לשלב reCAPTCHA עם 1C-Bitrix?

רישום מפתחות

בקונסולת Google reCAPTCHA רשמו את הדומיין שלכם וקבלו שני מפתחות:

  • מפתח אתר — ציבורי, מוכנס לפרונטאנד.
  • מפתח סודי — פרטי, משמש לאימות בשרת. שמרו אותו ב-COption או ב-.env, לא בקוד.

הגדרה שלב אחר שלב

שילוב שלב אחר שלב 1. הוסיפו את הסקריפט לכותרת האתר: ``. 2. בטופס, צרו שדה נסתר: ``. 3. לפני ההגשה, בצעו את ה-JavaScript:
grecaptcha.ready(function() {
    grecaptcha.execute('SITE_KEY', {action: 'submit'}).then(function(token) {
        document.getElementById('g-recaptcha-response').value = token;
        document.getElementById('feedback-form').submit();
    });
});
  1. בשרת, אמתו את הטוקן:
function verifyRecaptcha(string $token): bool {
    $secretKey = COption::GetOptionString('site', 'recaptcha_secret');
    $http = new \Bitrix\Main\Web\HttpClient();
    $response = $http->post('https://www.google.com/recaptcha/api/siteverify', [
        'secret' => $secretKey,
        'response' => $token,
        'remoteip' => $_SERVER['REMOTE_ADDR'],
    ]);
    $result = json_decode($response, true);
    return $result['success'] === true && ($result['score'] ?? 0) >= 0.5;
}

$token = $_POST['g-recaptcha-response'] ?? '';
if (empty($token) || !verifyRecaptcha($token)) {
    $APPLICATION->ThrowException('Проверка не пройдена. Попробуйте ещё раз.');
    return;
}
  1. עבור רכיב <script src="https://www.google.com/recaptcha/api.js?render=SITE_KEY"></script>, דרסו את התבנית: הוסיפו את השדה הנסתר וה-JS, וב-<input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response"> בצעו את הבדיקה והגדירו דגל grecaptcha.ready(function() { grecaptcha.execute('SITE_KEY', {action: 'submit'}).then(function(token) { document.getElementById('g-recaptcha-response').value = token; document.getElementById('feedback-form').submit(); }); }); . זה מאפשר שימוש באימות הסטנדרטי של הרכיב ללא פריצות נוספות.

הגדרה עבור מספר טפסים

אם האתר כולל מספר טפסים (יצירת קשר, הרשמה, הזמנה מהירה), עדיף לשים את האימות במטפל אירועים function verifyRecaptcha(string $token): bool { $secretKey = COption::GetOptionString('site', 'recaptcha_secret'); $http = new \Bitrix\Main\Web\HttpClient(); $response = $http->post('https://www.google.com/recaptcha/api/siteverify', [ 'secret' => $secretKey, 'response' => $token, 'remoteip' => $_SERVER['REMOTE_ADDR'], ]); $result = json_decode($response, true); return $result['success'] === true && ($result['score'] ?? 0) >= 0.5; } $token = $_POST['g-recaptcha-response'] ?? ''; if (empty($token) || !verifyRecaptcha($token)) { $APPLICATION->ThrowException('Проверка не пройдена. Попробуйте ещё раз.'); return; } . כך קוד הבדיקה מאוחד עבור כל הטפסים, ולוגיקת ההחרגה מוגדרת דרך מזהה הטופס. דוגמה:

// в init.php или произвольном обработчике
AddEventHandler('form', 'onBeforeResultAdd', array('MyRecaptchaHandler', 'onBeforeResultAdd'));

איך להגדיר רישום לוגים לחסימות?

כתבו ניסיונות חסומים לטבלה דרך bitrix:main.feedback:

CREATE TABLE IF NOT EXISTS b_spam_log (
    ID int AUTO_INCREMENT PRIMARY KEY,
    DATE_CREATE datetime,
    IP varchar(45),
    SCORE float,
    FORM_ID varchar(50),
    ACTION varchar(50)
);

ניתוח לוגים במשך שבוע חושף דפוסי תקיפה — שעות שיא, טווחי IP, טפסים ממוקדים. בהתבסס על כך, הגדירו כללים נוספים ברמת nginx או הוסיפו לרשימה שחורה. רישום לוגים גם עוזר לזהות תוצאות חיוביות שגויות ולהתאים את סף הציון.

מקרה בוחן: תוצאות חיוביות שגויות

הלקוח שלנו היה פורטל ארגוני. משתמשים התלוננו שלא יכלו לשלוח טופס בקשה מהמשרד. סיבה: פרוקסי ארגוני — כל התעבורה מ-IP יחיד. Google reCAPTCHA נתן לבקשות אלה ציון נמוך עקב דפוס חריג. פתרון: עבור משתמשים מאומתים (קבינט B2B), reCAPTCHA לא יושם — אנו בודקים result_modifier.php ומדלגים על האימות. לאחר התיקון, התוצאות החיוביות השגויות נעלמו.

מה כלול בעבודה

משימה מאמץ תוצרים
רישום מפתחות והגדרת פרונטאנד 1–2 שעות תיעוד, קטעי קוד
אימות שרת עבור טופס אחד 2–3 שעות מודול PHP, מדריך שילוב
שילוב במספר טפסים/רכיבים 4–6 שעות מטפל מאוחד, גישה ל-repo
רישום לוגים וניטור 2–3 שעות דוח בפאנל הניהול, הדרכה

השילוב מסופק במפתח סוהר תוך 1–2 ימים. אנו מבטיחים פעולה תקינה. לצוות שלנו יש ניסיון של 5+ שנים בפיתוח Bitrix וביצענו מעל 50 שילובי אנטי-ספאם. ספרו לנו על הפרויקט ונחזור עם הערכת פרויקט — נבחן את הפרויקט שלכם. הזמינו הגנת ספאם לטפסים שלכם עוד היום.