אימות SMS ב-1C-Bitrix: אנטי-הונאה לרישום ותשלום

ללא אימות SMS, חנות מקוונת עלולה לאבד עד 30% מתקציב הפרסום שלה על הזמנות מזויפות. <cite>— לפי דו"ח הונאות מסחר אלקטרוני לשנת 2023.</cite> לאחרונה, לקוח עם חנות חלקי רכב חווה 5,000 רישומים ביום, מתוכם 40% בוטים. לאחר יישום אימות
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
אימות SMS ב-1C-Bitrix: אנטי-הונאה לרישום ותשלום
פשוט
~1 יום

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

שאלות נפוצות

העבודות האחרונות

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1458
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    פיתוח אתר לחברת FIXPER
    1019
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    761
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    880
  • image_crm_dolbimby_434_0.webp
    פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    804
  • image_crm_technotorgcomplex_453_0.webp
    פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    1162

ללא אימות SMS, חנות מקוונת עלולה לאבד עד 30% מתקציב הפרסום שלה על הזמנות מזויפות. — לפי דוח הונאות מסחר אלקטרוני לשנת 2023. לאחרונה, לקוח עם חנות חלקי רכב חווה 5,000 הרשמות ביום, מתוכן 40% היו בוטים. לאחר יישום האימות, החשבונות המזויפים ירדו ל-3%, מה שהפחית משמעותית את הוצאות הפרסום. ללא אימות, כל חשבון חמישי הוא מזויף. הפתרון שלנו הוא מודול מותאם אישית עם טבלת מסד נתונים, אנטי-הונאה ואינטגרציה גמישה. מומחי 1C-Bitrix מוסמכים עם ניסיון פיתוח של למעלה מ-10 שנים ויותר מ-500 פרויקטים מוצלחים מבטיחים פעילות יציבה.

מדוע אימות SMS יעיל יותר מ-CAPTCHA

אימות SMS אמין פי 5 מאימות דוא"ל, מכיוון שמספר טלפון מקושר לכרטיס SIM וקשה יותר לייצר אותו. CAPTCHA מרתיעה רק בוטים פשוטים (יעילות של 60%), בעוד שקוד SMS דורש מכשיר אמיתי (יעילות של 99%). עבור חנויות עם מרווחים גבוהים, זה משתלם תוך 1–2 חודשים. לדוגמה, חנות טיפוסית יכולה לחסוך 2,000 דולר בחודש לאחר היישום. בנוסף, אחסון קודים במסד נתונים אמין פי 10 משימוש בסשנים: סשנים פגיעים להתקפות קיבוע סשן, בעוד שטבלה עם אינדקס מבטיחה שלמות.

בחירת ספק SMS

ל-1C-Bitrix אין שער SMS משלו. האינטגרציה נבנית דרך REST API של הספק. אפשרויות פופולריות לשוק הרוסי/חבר העמים:

  • SMSC.ru — API ישיר, תיעוד טוב
  • SMS.ru — מצב בדיקה חינם (100 SMS חינם)
  • MTS Exolve / Beeline — תעריפים עסקיים
  • Twilio — לפרויקטים בינלאומיים

חיבור ספק נעשה באמצעות מחלקת עטיפה נפרדת המיישמת ממשק אחיד. זה מאפשר להחליף ספק במידת הצורך ללא שינוי בלוגיקת האימות.

ארכיטקטורת אימות

מדוע לאחסן קודים במסד נתונים במקום בסשן?

אחסון בסשן פגיע להתקפות קיבוע סשן. אנו משתמשים בטבלה נפרדת custom_sms_verification:

CREATE TABLE custom_sms_verification ( id INT AUTO_INCREMENT PRIMARY KEY, phone VARCHAR(20) NOT NULL, code VARCHAR(6) NOT NULL, created_at DATETIME NOT NULL, attempts INT DEFAULT 0, verified TINYINT DEFAULT 0, INDEX idx_phone (phone), INDEX idx_created (created_at) ); 

ב-Bitrix D7 דרך CREATE TABLE custom_sms_verification ( id INT AUTO_INCREMENT PRIMARY KEY, phone VARCHAR(20) NOT NULL, code VARCHAR(6) NOT NULL, created_at DATETIME NOT NULL, attempts INT DEFAULT 0, verified TINYINT DEFAULT 0, INDEX idx_phone (phone), INDEX idx_created (created_at) ); :

class SmsVerificationTable extends \Bitrix\Main\ORM\Data\DataManager { public static function getTableName(): string { return 'custom_sms_verification'; } public static function getMap(): array { return [ new \Bitrix\Main\ORM\Fields\IntegerField('ID', ['primary' => true, 'autocomplete' => true]), new \Bitrix\Main\ORM\Fields\StringField('PHONE'), new \Bitrix\Main\ORM\Fields\StringField('CODE'), new \Bitrix\Main\ORM\Fields\DatetimeField('CREATED_AT'), new \Bitrix\Main\ORM\Fields\IntegerField('ATTEMPTS'), new \Bitrix\Main\ORM\Fields\BooleanField('VERIFIED'), ]; } } 

לאחסון נתוני קוד, ניתן גם להשתמש ב-HL-blocks (Highload-blocks) — נוח לניהול רשומות מממשק הניהול.

כיצד להגן על הקוד מפני ניחוש

הלוגיקה כוללת הגנה: לאחר 3 ניסיונות כושלים, הקוד נחסם ללא קשר לאורך חייו (5–10 דקות). מגבלות נוספות: לא יותר מבקשה אחת לכל 60 שניות למספר, לא יותר מ-5 קודים ליום לכתובת IP. CAPTCHA מופיעה תחת פעילות חשודה.

function sendVerificationCode(string $phone): bool { $code = str_pad(random_int(0, 999999), 6, '0', STR_PAD_LEFT); $recent = SmsVerificationTable::getList([ 'filter' => [ '=PHONE' => $phone, '>CREATED_AT' => new \Bitrix\Main\Type\DateTime(date('Y-m-d H:i:s', time() - 60)) ] ])->fetch(); if ($recent) return false; // Too many requests SmsVerificationTable::add([ 'PHONE' => $phone, 'CODE' => $code, 'CREATED_AT' => new \Bitrix\Main\Type\DateTime(), 'ATTEMPTS' => 0, 'VERIFIED' => false, ]); return SmsProvider::send($phone, "Ваш код подтверждения: $code"); } 

דוגמה לאימות קוד:

function checkVerificationCode(string $phone, string $code): bool { $record = SmsVerificationTable::getList([ 'filter' => [ '=PHONE' => $phone, '=VERIFIED' => false, '>CREATED_AT' => new \Bitrix\Main\Type\DateTime(date('Y-m-d H:i:s', time() - 600)) ] ])->fetch(); if (!$record) return false; if ($record['ATTEMPTS'] >= 3) return false; SmsVerificationTable::update($record['ID'], ['ATTEMPTS' => $record['ATTEMPTS'] + 1]); if ($record['CODE'] === $code) { SmsVerificationTable::update($record['ID'], ['VERIFIED' => true]); return true; } return false; } 

שילוב אימות SMS עם הרשמה ותשלום

האימות מוטמע בשני מקומות. במהלך ההרשמה — דרך מטפל האירועים \Bitrix\Main\ORM\Data\DataManager. אם מספר הטלפון לא אומת, ההרשמה נחסמת עד לאישור SMS. תהליך אימות לקוח זה מבטיח שרק משתמשים אמיתיים נרשמים. במהלך התשלום — דרך רכיב class SmsVerificationTable extends \Bitrix\Main\ORM\Data\DataManager { public static function getTableName(): string { return 'custom_sms_verification'; } public static function getMap(): array { return [ new \Bitrix\Main\ORM\Fields\IntegerField('ID', ['primary' => true, 'autocomplete' => true]), new \Bitrix\Main\ORM\Fields\StringField('PHONE'), new \Bitrix\Main\ORM\Fields\StringField('CODE'), new \Bitrix\Main\ORM\Fields\DatetimeField('CREATED_AT'), new \Bitrix\Main\ORM\Fields\IntegerField('ATTEMPTS'), new \Bitrix\Main\ORM\Fields\BooleanField('VERIFIED'), ]; } } . שלב אימות מתווסף לפני אישור ההזמנה הסופי. זה חשוב במיוחד לחנויות המקבלות הזמנות ללא הרשמה. עבור טופס אימות AJAX, נעשה שימוש בבקר:

class SmsVerifyController extends \Bitrix\Main\Engine\Controller { public function sendAction(): array { ... } public function checkAction(string $phone, string $code): array { ... } } 

ניתן לשלב את האימות גם עם Bizproc כדי להפוך פעולות לאוטומטיות לאחר אישור המספר.

תוכנית יישום שלב אחר שלב

  1. בחרו ספק ובדקו שליחת הודעות.
  2. צרו טבלה לאחסון קודים (או HL-block).
  3. יישמו מחלקת עטיפה לספק עם ממשק אחיד.
  4. כתבו מטפל שליחת קוד עם מגבלות.
  5. הטמיעו בטופס ההרשמה דרך אירוע.
  6. שנו את sale.order.ajax כדי להוסיף שלב אימות.
  7. הגדירו אנטי-הונאה ונורמליזציה של מספרים.
  8. בדקו תחת עומס (symulate בוטים).

אילו מגבלות יש להגדיר?

אמצעי הגנה חובה:

מגבלה ערך
בקשות לשעה למספר 3
קודים ליום לכתובת IP 5
CAPTCHA תחת חשד כן
נורמליזציה של מספר +7XXXXXXXXXX

מגבלות אלה חוסמות 99% מהבוטים. כאשר חריגה, המשתמש רואה: "נסו שוב בעוד 10 דקות."

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

  • תרשים סכמטי של אימות (תיעוד)
  • הגדרת ספק SMS ובדיקת ריצה (כולל 100 SMS לבדיקה)
  • מחלקת עטיפה לספק עם ממשק אחיד
  • מיגרציה של מסד נתונים לאחסון קודים
  • מטפלי אירועים להרשמה ושינוי של sale.order.ajax
  • הגדרת אנטי-הונאה ומגבלות
  • הוראות הפעלה וחודש תמיכה (טלפון/דוא"ל)
  • גישה למאגר הידע ולמאגר הקוד שלנו

לוחות זמנים

היקף העבודה זמן
שליחה + אימות קוד, זרימה בסיסית 1–2 ימים
אינטגרציה עם הרשמה + תשלום 2–3 ימים
אנטי-הונאה, מגבלות, נורמליזציה של מספרים +יום אחד

אימות SMS הוא השקעה באיכות בסיס הלקוחות שלכם. חשבון נקי אחד שווה יותר מעשרה מזויפים. הזמינו הגדרת אימות SMS עכשיו — הגנו על בסיס הלקוחות שלכם מפני בוטים. צרו קשר לייעוץ חינם. לצוות שלנו ניסיון של 10+ שנים בפיתוח Bitrix והוא השלים 500+ פרויקטי אינטגרציה.