
تفعيل الدخول برمز لمرة واحدة يأخذ دقائق، لكن الإعدادات التي تتركها على حالها هي ما يحدد هل صار موقعك أكثر أمانًا أم فتح بابًا جديدًا. رمز يبقى صالحًا ساعة، أو نموذج يرسل رسائل بلا حد، أو رسالة خطأ تقول «هذا الرقم غير مسجل»، كلها ثغرات حقيقية. هذا الدليل يراجع إعدادات أمان OTP في ووردبريس واحدًا واحدًا: المدة، والمحاولات، وحدود الإرسال، والرسائل، مع القيم التي نبدأ بها عادة.
القيم التي نبدأ بها
- رمز من 6 أرقام، صالح 5 دقائق، يُقبل مرة واحدة فقط، ورمز نشط واحد للمستخدم في كل وقت.
- 5 محاولات خاطئة ثم قفل مؤقت، ومهلة بين كل طلب إعادة إرسال والذي يليه.
- حد للطلبات لكل عنوان IP في الساعة ولكل رقم في اليوم، مع قائمة دول مسموحة.
لماذا تحتاج هذه الإعدادات أصلًا؟
إذا كانت محاولات الإدخال بلا حد، فرمز من 6 أرقام له مليون احتمال فقط، وسكربت سريع يجربها. ومع حد 5 محاولات لكل رمز تصبح فرصة التخمين 5 من مليون. أما الإرسال بلا حد فله خطر مختلف تمامًا: ما يُسمى SMS pumping، حيث يستخدم محتالون حقل رقم الهاتف في موقعك لإرسال رسائل تحقق إلى أرقام يربحون من تكلفتها، وتدفع أنت الفاتورة.
إعدادات الرمز نفسه
| الإعداد | قيمة مقترحة | المنطق |
|---|---|---|
| طول الرمز | 6 أرقام | 4 أرقام (10 آلاف احتمال) ضعيفة، و8 تتعب المستخدم على الموبايل |
| نوع الرمز | أرقام فقط | الحروف تزيد أخطاء الإدخال ولا تضيف أمانًا يستحق مع حد المحاولات |
| مدة الصلاحية | 5 دقائق | إرشادات NIST تعتبر التحقق خارج القناة باطلًا إذا لم يكتمل خلال 10 دقائق |
| إعادة الاستخدام | مرة واحدة | NIST يشترط قبول السر مرة واحدة فقط خلال صلاحيته |
| رمز نشط واحد | مفعّل | طلب رمز جديد يلغي السابق، فلا تتراكم رموز صالحة |
| المحاولات الخاطئة | 5 ثم قفل 15 دقيقة | توازن بين خطأ المستخدم الحقيقي والتخمين |
حدود الإرسال: حماية لفاتورتك أولًا
- 1
حد لكل عنوان IP في الساعة
يوقف السكربت الذي يطلب رموزًا لأرقام كثيرة من مكان واحد. وإذا كان موقعك خلف CDN، ففعّل خيار الثقة في الوسيط (trust proxy) حتى يُقرأ العنوان الحقيقي، وإلا سيتشارك كل الزوار عنوانًا واحدًا.
- 2
حد لكل رقم في اليوم
يمنع إغراق رقم شخص بعينه برسائل لم يطلبها، وهو نوع من الإزعاج يستخدم أحيانًا للانتقام أو الابتزاز.
- 3
مهلة بين طلبات الإعادة
زر «إعادة الإرسال» يظهر بعد 60 ثانية مثلًا، مع عدّاد تنازلي، فلا يضغطه المستخدم القلق خمس مرات.
- 4
قائمة دول مسموحة
إذا كان عملاؤك في مصر والخليج، فلا داعي لقبول أرقام من كل دول العالم. حقل الهاتف الدولي يسمح بتحديد الدول المقبولة، وهذا وحده يقطع معظم محاولات SMS pumping التي تستهدف أرقامًا في دول بعيدة.
- 5
CAPTCHA غير مزعج
reCAPTCHA v3 أو Cloudflare Turnstile أو hCaptcha على نموذج طلب الرمز، لا على نموذج إدخاله. هكذا يتوقف البوت قبل أن تكلفك رسالته شيئًا.
رسائل لا تكشف معلومات
- استخدم رسالة واحدة سواء كان الرقم مسجلًا أم لا، مثل: «إذا كان هذا الرقم مرتبطًا بحساب، فسيصلك رمز خلال دقيقة». وضع الخصوصية (anti-enumeration) في الإضافات يفعل ذلك.
- لا تكتب الرمز في سجلات الأخطاء أو في رسائل البريد للمدير.
- نص رسالة الرمز يذكر اسم موقعك ومدة الصلاحية، وينبّه إلى عدم مشاركته مع أحد.
القناة والقناة البديلة
واتساب يصل أسرع من SMS غالبًا ولا يرتبط بتكلفة رسالة لكل دولة، لكنه يحتاج أن يكون للمستخدم حساب على الرقم نفسه. لذلك اجعل SMS بديلًا تلقائيًا إذا تعذر واتساب، واجعل البريد خيارًا لمن يفضله. وتذكّر أن NIST يصنّف التحقق عبر شبكة الهاتف كوسيلة مقيّدة بسبب مخاطر تبديل الشريحة ونقل الرقم، فلحسابات المديرين أضف تطبيق مصادقة كطبقة ثانية.
أسئلة عن ضبط OTP
كم دقيقة يجب أن يبقى رمز OTP صالحًا؟
هل الرمز المكون من 4 أرقام آمن؟
كيف أتأكد أن حدود الإرسال تعمل؟
مقالات مرتبطة
- لماذا يحتاج متجرك ومنصتك الدخول بكود OTP
- قفل المحاولات والتحقق بخطوتين لحسابات المديرين
- إعداد SMTP إذا كان البريد إحدى قنوات الرمز
المراجع
NIST SP 800-63B-4، القسم 3.1.3، وشرح Twilio لاحتيال SMS pumping، وتوثيق إضافة Mersal OTP. 18 أكتوبر 2026.
اربط Mersal OTP بموقعك
طول الرمز ومدته ومحاولاته، وحدود لكل عنوان ولكل رقم، وقائمة دول مسموحة، ووضع خصوصية يمنع كشف الحسابات، وتحويل تلقائي من واتساب إلى SMS.
إضافة Mersal OTP