
تستيقظ فتجد عشرات الطلبات بقيمة صغيرة، بأسماء عشوائية وبريد لا معنى له، ومعظمها فشل في الدفع. هذا هو اختبار البطاقات في ووكومرس: سكربت يستخدم صفحة الدفع في متجرك ليعرف أي بطاقات مسروقة ما زالت صالحة. الخسارة لا تقف عند الطلبات المزيفة؛ نسبة الرفض المرتفعة تضر سمعة متجرك لدى البنوك وبوابة الدفع. نشرح كيف تكتشف الهجوم، وماذا تفعل أثناءه، وما الطبقات التي توقفه دون أن تعقّد الشراء على العميل الحقيقي.
إذا كان الهجوم يحدث الآن
- استرجع فورًا المدفوعات الناجحة المشبوهة قبل أن تتحول إلى نزاعات (chargebacks).
- فعّل «Rate limit Checkout» في ووكومرس، وأضف CAPTCHA يُتحقق منه على الخادم، أو اشترط تسجيل الدخول مؤقتًا.
- تواصل مع بوابة الدفع وأخبرها بالهجوم؛ بعض البوابات تعلّق الحساب إذا ارتفعت نسبة الرفض.
كيف تعرف أنه اختبار بطاقات؟
بحسب توثيق Stripe، تظهر أغلب الهجمات كارتفاع واضح في المدفوعات الفاشلة، مع عمليات صغيرة القيمة وأسماء وعناوين بريد لا معنى لها. وفي ووكومرس تحديدًا نرى عادة هذه العلامات:
| العلامة | أين تراها |
|---|---|
| طلبات «فاشلة» أو «في انتظار الدفع» بالعشرات في ساعة | صفحة الطلبات، مرتبة بالتاريخ |
| المنتج نفسه، وغالبًا الأرخص في المتجر | عمود المنتجات في الطلبات |
| أسماء عشوائية وبريد مؤقت وعنوان فوترة غير منطقي | تفاصيل الطلب |
| محاولات متتالية بفارق ثوانٍ | ملاحظات الطلب وسجل البوابة |
| رفض بسبب «generic_decline» أو «do not honor» | لوحة بوابة الدفع |
طبقات الحماية، من الأسهل إلى الأعمق
- 1
حد معدّل الدفع المدمج في ووكومرس
في ووكومرس ← الإعدادات ← متقدم ← الميزات ستجد «Rate limit Checkout». عند تفعيله يُسمح بثلاثة طلبات دفع فقط كل 60 ثانية لنقطة الدفع في Store API ومسار زر «تأكيد الطلب» في Checkout Block. الميزة مطفأة افتراضيًا.
- 2
حد عام لطلبات Store API
السكربتات الحديثة تهاجم Store API مباشرة دون فتح صفحة الدفع. يمكنك تفعيل حد عام لطلبات POST عليها بفلتر واحد، والقيم أدناه هي الافتراضية في التوثيق:
add_filter( 'woocommerce_store_api_rate_limit_options', function () { return array( 'enabled' => true, 'proxy_support' => false, // true إذا كان المتجر خلف CDN أو موازن أحمال 'limit' => 25, // عدد الطلبات 'seconds' => 10, // خلال هذه المدة ); } ); - 3
CAPTCHA يُتحقق منه على الخادم
Cloudflare Turnstile أو reCAPTCHA على صفحة الدفع. Stripe ينبّه إلى أن CAPTCHA لا تفيد إلا إذا كان التحقق منها يحدث على الخادم لكل طلب دفع، لا في المتصفح فقط.
- 4
حدود سلوكية لا تعتمد على IP وحده
المهاجمون يبدّلون العناوين، ولذلك يوصي Stripe بعدم الاكتفاء بقاعدة IP. اجمع بين حد محاولات الدفع لكل عنوان في الساعة، وحد أدنى للوقت بين فتح صفحة الدفع وإرسالها (البوت يرسل في جزء من الثانية)، وفحص تكرار المنتج نفسه بقيم صغيرة.
- 5
قواعد الاحتيال في البوابة
معظم البوابات تسمح بقواعد مثل رفض الطلبات تحت مبلغ معيّن أثناء الهجوم. توثيق WooPayments يضرب مثالًا بحظر الطلبات الأقل من 5 دولارات حين يستهدف الهجوم منتجًا رخيصًا، مع مراجعة القاعدة باستمرار لأن المهاجمين يغيّرون أسلوبهم.
تخمين الكوبونات: الهجوم الأهدأ
بوت آخر لا يهتم بالبطاقات، بل يجرّب كلمات في خانة الكوبون حتى يصيب كودًا صالحًا، ثم يُنشر الكود في مجموعات الخصومات. العلاج عدّاد لمحاولات الكوبون الفاشلة لكل عنوان: بعد عشر محاولات فاشلة في ساعة مثلًا تُقفل الخانة مؤقتًا. واجعل أكواد الحملات طويلة وغير متوقعة، وحدّد عدد مرات الاستخدام لكل كود ولكل عميل.
بعد الهجوم: ماذا تراقب؟
- الرفض الكاذب: هل اشتكى عميل حقيقي من رسالة «تجاوزت الحد»؟ خفّف القاعدة الأشد أولًا، لا كل القواعد.
- نسبة نجاح الدفع: قارن أسبوعًا قبل الهجوم بأسبوع بعد تفعيل الحماية؛ انخفاضها يعني أن حماية ما تعيق العملاء.
- الطلبات المعلقة: احذف الطلبات الفاشلة المزيفة بعد توثيقها، حتى لا تفسد تقارير المبيعات ومتوسط قيمة الطلب.
أسئلة متكررة عن اختبار البطاقات
هل أغلق الشراء كضيف لإيقاف الهجوم؟
لماذا أسترجع المدفوعات الناجحة إذا كان المال قد وصل؟
هل يكفي حظر الدول التي تأتي منها الطلبات؟
للمتابعة
المراجع الرسمية
حماية نفسك من اختبار البطاقات (Stripe)، وتحديد معدّل Store API في ووكومرس، وصفحة WooPayments عن اختبار البطاقات. تمت المراجعة في 18 أكتوبر 2026.
احمِ متجرك مع Protection Suite
حد لمحاولات الدفع لكل عنوان، وعدّاد لمحاولات الكوبون الفاشلة، وحد أدنى لزمن تعبئة صفحة الدفع، وتنبيه عند تغيّر بوابة الدفع أو إضافة Webhook جديد.
تفاصيل حماية المتجر