برنامج تعليمي مفصل للغاية للوصول إلى API لرمز التحقق من الرسائل القصيرة Alibaba Cloud: من مراجعة قالب التوقيع إلى رمز عبر الإنترنت
بصفتها "الأخ الأكبر" للحوسبة السحابية المحلية ، كانت خدمة الرسائل القصيرة Alibabi (Dysmsapi) دائمًا الخيار الأول لفرق البحث والتطوير في الخطوط الأمامية بسبب جودة القناة العالية ، والتسليم على مستوى الثواني ، والتزامن الكبير. ومع ذلك ، في عملية الوصول الفعلية ، سيتم تكديس العديد من المطورين المبتدئين وحتى المحاربين القدامى من خلال مجموعة من "التوقيعات والقوالب ومراجعات الامتثال" ، وحتى بعد توصيل الكود بالإنترنت ، يتم صلعه مباشرة من قبل المتسللين بسبب عدم القيام بعمل جيد. رصيد الحساب.
في هذا المقال اليوم ، نتخلى تمامًا عن الخطاب الرسمي المتين للوثائق الرسمية. أنا أقف تماما
مهندس خلفي كبير
من منظور العملية ، يأخذك من "تقرير التأهيل الصفري" إلى "رمز بيئة الإنتاج عبر الإنترنت". سيتم تحديد جميع النقاط الميتة التي يسهل تخطو على الرعد في المنتصف ، وستسمح لك بالركض بالكامل في 5 دقائق.
المرحلة الأولى: "حرب الامتثال غير الفنية" لوحدة التحكم (التوقيع ومراجعة القالب)
لا تتسرع في كتابة الرمز! تخضع خدمة الرسائل القصيرة Alibaba Cloud لرقابة صارمة من قبل الدولة ، ويجب أن تكون الخطوة الأولى في وحدة التحكم
المؤهلات والتوقيعات والقوالب
تم الانتهاء من هذه الأشياء الثلاثة. هذا هو الترتيب القياسي لمعدل النجاح الأعلى والأكثر توفير الوقت:
1. طلب التأهيل: فرد أم شركة ؟
عند الدخول إلى وحدة التحكم في الرسائل القصيرة Alibaba Cloud ، فإن الخطوة الأولى هي إنشاء "مؤهل".
المؤهلات الشخصية: ما عليك سوى ربط معلومات مصادقة الاسم الحقيقي الشخصية (رمز مسح Alipay). أصبحت المؤهلات الشخصية الآن أكثر تقييدًا ، ولا يمكن إرسال سوى رمز التحقق وبعض رسائل الإخطار القصيرة.
مؤهلات المؤسسة: تحتاج إلى تحميل نسخة من الرخصة التجارية الثلاثية للمؤسسة. إذا كنت تقوم بمشروع تجاري رسمي ، فيجب عليك استخدام مؤهلات الشركة ، لأن معدل تمرير الرسائل النصية أعلى ، وليس من السهل إطلاق اعتراض التحكم في الرياح.
2. طلب التوقيع: تجنب الكلمات الحساسة
التوقيع يبدأ بالرسائل النصية
[هذه الكلمات الأربع]
، تمثل هويتك التجارية أو العلامة التجارية.
خدعة تجنب الحفرة: يجب أن يكون الاسم الموقع هو نفسه اسم شركتك أو اسم تسجيل موقع الويب أو اسم التطبيق أو العلامة التجارية المسجلة. إذا تم تطويره نيابة عن العميل ، فيجب على العميل إصدار "توكيل رسمي" بختم رسمي.
في سبب التطبيق ، قم فقط بنشر اسم نطاق موقع الويب الخاص بك أو لقطة شاشة للتطبيق في متجر التطبيقات. لا تكتب كلمات فارغة. راجع الأخ الصغير لرؤية دليل المطرقة الحقيقية ، عادة في غضون 30 دقيقة.
3. تطبيق النموذج: كلما كانت أكثر صلابة ، كان ذلك أسهل
القالب هو المحتوى المحدد للرسائل القصيرة ، حيث يستخدم رمز التحقق عنصر نائب
{Code}
بدلا من ذلك.
عرض خاطئ: [XX Technology] واو ، Lao Tie ، أنت هنا! رمز التحقق من التسجيل الخاص بك هو ${code} ، تعال وابدأ رحلتك الغامضة! (من السهل جدًا الحكم عليه بالتسويق أو التحرش بالرسائل النصية).
العرض القياسي: [XX Technology] رمز التحقق من التسجيل الخاص بك هو: ${code} ، يرجى إدخاله في غضون 5 دقائق. يرجى عدم إفشاء رمز التحقق لأي شخص آخر.
اختر "رمز التحقق" لنوع القالب ، ولا تختار "إشعار الرسائل القصيرة" أو "رسالة نصية ترويجية". الوزن ومعدل الوصول لقناة رمز التحقق هو الأعلى.
المرحلة الثانية: 5 دقائق سرعة رمز الالتحام (Python ، على سبيل المثال)
عندما تحصل عليه في وحدة التحكم
معرّف مفتاح الوصول
،
سر مفتاح الوصول
،
اسم التوقيع
و
Code قالب (مثل SMS_20261234)
بعد ذلك ، يمكنك الدخول رسميًا في مرحلة بدء التكنولوجيا.
هنا ، يتم استخدام أحدث إصدار موصى به من V2.0 SDK من Alibun في عام 2026 (أكثر استقرارًا ، مع دعم محلي للحفاظ على اتصال طويل). نحن مع الأكثر أناقة
Python 3 مكالمات متزامنة غير متزامنة
على سبيل المثال:
1-تركيب التبعية الأساسية
تشغيل مباشرة في البيئة الافتراضية الخاصة بك:
باش
Pip install alibabacloud_dysmsapi20170525 = = 3.0.0
2. تنفيذ خدمة الإرسال الخلفية الأساسية (خارج الصندوق)
بايثون
Import os
Import random
من Client as Dysmsapi20170525Client
من alibabacloud_tea_openapi import models as open_api_models
من import models as
Class AliSmsService:
Def __init__(self):
#1. اقرأ المفتاح من متغيرات البيئة (لا ترميز أبدًا في الكود!)
التكوين = كونفغ موديلز.كونفغ(
access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID')،
access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET')
)
#2. الوصول إلى اسم المجال ، والرسائل النصية المحلية الثابتة هذا
config.endpoint = 'dysmsapi.aliyuncs.com'
Self. client = Dysmsapi20170525Client(config)
Def send_verify_code(self, phone: str) -> tuple[bool, str]:
#3-إنشاء رمز التحقق من الأرقام المكون من 6 أرقام محليًا
Verify_code = str(random.randint(100000, 999999))
#4-معلمات الطلب القياسية المطلوبة لبناء سحابة علي
Send_sms_request = dysmsapi_20170525_models.SendSmsRequest (
Phone_code = phone ،
Sign_name = "توقيعك الرسمي" ، # استبدل بالتوقيع الذي تمت الموافقة عليه من قبل وحدة التحكم
Template_code = "SMS _ 20261234" ، # استبدل بمعرف القالب الذي تمت الموافقة عليه من قبل وحدة التحكم
Template_param = f '{"code":"{verify_code}"}}' # سلسلة JSON صارمة
)
حاول:
#5-بدء طلب الاستعانة بمصادر خارجية على شبكة الإنترنت
Response = self.client.send_sms(send_sms_request)
#6. الحكم على حالة العودة لبوابة سحابة علي
إذا كان رمز جسم الاستجابة هو 'OK':
Print (f "[نجاح] تم تسليم رمز التحقق {verify_code} إلى الهاتف المحمول: {phone}")
# [يجب أن يتم الإنتاج] اكتب verify_code إلى Redis هنا ، ضبطه على انتهاء صلاحية 5 دقائق
# Redis_client.setex (f "sms_code:{phone}" ، 300 ، verify_code)
Return True, verify_code
إلا:
Print (f "[فشل] بوابة سحابة علي ترفض: {response.body.message}")
Return False, response.body.message
هـ
Xcept Exception as error:
Print (f "[غير طبيعي] واجهة استدعاء اهتزاز الشبكة: {str(error)}")
Return False, str(error)
# استدعاء الاختبار
# Sms = AliSmsService()
# Sms. send_verify_code("13800138000")
المرحلة الثالثة: "ثلاثة خطوط ميتة من الألغام المقاومة للانفجار" في بيئة الإنتاج عبر الإنترنت
يمكن تشغيل الكود ، وفي أحسن الأحوال ، يتم إكمال 30 ٪ فقط من العمل. واجهة رمز التحقق من الرسائل القصيرة هي مورد دجاج التسمين المفضل لدى المتسللين على مستوى الشبكة بأكملها وقاذفات الرسائل القصيرة. إذا كشفت الواجهة المذكورة أعلاه مباشرة ، فسيصبح رصيد عشرات الآلاف من الدولارات في الليلة وقودًا مجانيًا للآخرين.
قبل أن يبدأ النظام بالإنترنت ، يجب بناء هذه البوابات الحديدية الثلاثة في الكود الخلفي الخاص بك:
البوابة 1: رمز التحقق من السلوك/الرسومات الأمامية (اعتراض 99 ٪ من البرامج النصية الآلية)
لا يُسمح للمستخدمين مطلقًا بالاتصال مباشرة بواجهة برمجة تطبيقات Alibaba Cloud بمجرد النقر فوق "الحصول على رمز التحقق".
بنية قياسية: قبل أن ينقر المستخدم على الإرسال ، يجب أن ينبثق شريط التمرير الذكي أو التحقق من سلوك اللغز (مثل "رمز التحقق 2.0" أو Cloudflare Turnstile).
بعد أن تنتهي الواجهة الأمامية من الانزلاق ، ستحصل على validate_token ، وبعد أن تتلقى الواجهة الخلفية هذا Token للتحقق من الشرعية ، يُسمح لها بالاتصال بواجهة الرسائل القصيرة. يمكن لهذه الخطوة أن تمنع مباشرة جميع المتسللين الذين يكتبون نصوص Python للقصف الآلي.
البوابة الثانية: قفل حد تيار التردد الموزع Redis (مضاد للانفجار عالي التردد)
قبل استدعاء Alibaba Cloud API ، يجب أن يتم تقييد التدفق متعدد الأبعاد عبر Redis:
حد رقم الهاتف المحمول الفردي: sms_lock:{phone} تعيين 60 ثانية لانتهاء الصلاحية. يمكن طلب نفس رقم الهاتف المحمول مرة واحدة فقط في 60 ثانية.
حد IP للعميل الواحد: الحد من نفس IP الشبكة الخارجية يمكنه فقط طلب ما يصل إلى 10 رموز التحقق في اليوم. منع المتسللين من استخدام عشرات الآلاف من أرقام الهواتف المحمولة المختلفة للتناوب على تمرير الواجهة الخاصة بك.
الحد الإجمالي لليوم: قم بتعيين عتبة الإرسال الإجمالية للنظام. على سبيل المثال ، تستخدم شركتك عادةً 1000 رسالة نصية فقط يوميًا ، ويتم تعيين الحد الأعلى العالمي اليومي إلى 5000. بمجرد فرشها ، وصل النظام إلى 5000 قطعة من الصمامات التلقائية ولم يعد يرسل الحزمة ، مما يحبس أكبر خسارة مالية.
البوابة 3: "مبدأ لمرة واحدة" للتحقق من رمز التحقق
عندما يقوم المستخدم بإدخال رمز التحقق في الواجهة الأمامية لتقديم التسجيل ، يجب أن يكون منطق التحقق في الواجهة الخلفية:
اقرأ رمز التحقق الصحيح من Redis للمقارنة.
بغض النظر عما إذا كانت نتيجة المقارنة صحيحة أو خاطئة ، قم بحذف رمز التحقق هذا في Redis على الفور (أو السماح بالأخطاء حتى 3 مرات ثم إلغها).
السبب: إذا لم يتم حذف رمز التحقق مرة واحدة ، فيمكن للمتسلل استخدام برنامج التفجير المتزامن لطلب التردد العالي من 0 خلال فترة الصلاحية لمدة 5 دقائق
اصطدم مليون بـ 999999. يجب أن يكون رمز التحقق "مخلوقًا يمكن التخلص منه" ويموت إذا تم استخدامه.
الخلاصة
عند الوصول إلى رمز التحقق من الرسائل القصيرة Alibaba Cloud ، تكون كتابة الكود الفني في الواقع بسيطة جدًا (حزمة SDK كاملة جدًا) ، والجهد الحقيقي هو خارج الكود:
عند مراجعة وحدة التحكم ، يتم الانتباه إلى اتساق البيانات ، ويتم نشر الكود مع التركيز على قيود Redis وصرامة التحقق من الإنسان والآلة.
من خلال اتخاذ هذه الخطوات المتينة ، يمكن لنظام التحقق من التسجيل الخاص بك أن يحتوي على سرعة توزيع على مستوى المصنع الكبير وقدرات دفاعية تشبه الجدار الحديدي.

