Alibaba Cloud SMS รหัสยืนยันการเข้าถึง API บทช่วยสอนที่มีรายละเอียดสูง: ตั้งแต่การตรวจสอบเทมเพลตลายเซ็นไปจนถึงการเปิดตัวรหัส
ในฐานะ "พี่ใหญ่" ของการประมวลผลแบบคลาวด์ในประเทศ Alibaba Cloud SMS Service (Dysmsapi) เป็นตัวเลือกแรกของทีม R & D แนวหน้าเนื่องจากมีคุณภาพของช่องสัญญาณสูงการจัดส่งในไม่กี่วินาทีและการทำงานพร้อมกันจำนวนมากอย่างไรก็ตามในขั้นตอนการเข้าถึงจริงนักพัฒนามือใหม่และแม้แต่ทหารผ่านศึกจำนวนมากจะได้รับผลกระทบอย่างมากจาก "ลายเซ็นเทมเพลตและการตรวจสอบการปฏิบัติตามข้อกำหนด" จำนวนมากและแม้กระทั่งหลังจากที่รหัสออนไลน์ล้มเหลวในการป้องกันการแปรงฟันและแฮกเกอร์ก็หัวล้านโดยตรงยอดเงินในบัญชี
ในบทความวันนี้เราได้ละทิ้งสำนวนที่เข้มงวดของเอกสารทางการโดยสิ้นเชิงฉันยืนอยู่อย่างสมบูรณ์
สถาปนิกแบ็คเอนด์อาวุโส
มุมมองเชิงปฏิบัติของบริษัทจะพาคุณไปจาก "การรายงานคุณสมบัติเป็นศูนย์" ไปจนถึง "รหัสสภาพแวดล้อมการผลิตออนไลน์" จุดตายทั้งหมดที่อยู่ตรงกลางที่เหยียบฟ้าร้องได้ง่ายจะถูกเลือกให้คุณและคุณจะสามารถวิ่งผ่านได้ใน5นาที
ขั้นตอนที่1: "สงครามการปฏิบัติตามข้อกำหนดที่ไม่ใช่ทางเทคนิค" ของคอนโซล (การตรวจสอบลายเซ็นและเทมเพลต)
อย่ารีบเขียนโค้ด! บริการ Alibaba Cloud SMS อยู่ภายใต้การดูแลของรัฐอย่างเคร่งครัดขั้นตอนแรกต้องอยู่ในคอนโซล
คุณสมบัติลายเซ็นเทมเพลต
สามสิ่งนี้เสร็จสิ้นนี่คือลำดับมาตรฐานที่มีอัตราการผ่านสูงสุดและประหยัดเวลามากที่สุด:
1.การสมัครคุณสมบัติ: บุคคลหรือองค์กร?
เข้าสู่คอนโซล Alibaba Cloud SMS ขั้นตอนแรกคือการสร้าง "คุณสมบัติ"
คุณสมบัติส่วนบุคคล: คุณต้องผูกข้อมูลการตรวจสอบชื่อจริงส่วนบุคคลของคุณเท่านั้น (Alipay สามารถสแกนรหัสได้) ขณะนี้คุณสมบัติส่วนบุคคลมีข้อจำกัดมากขึ้นและสามารถส่งรหัสยืนยันและข้อความแจ้งเตือนบางส่วนได้เท่านั้น
คุณสมบัติขององค์กร: จำเป็นต้องอัปโหลดสำเนาใบอนุญาตประกอบธุรกิจสามในหนึ่งเดียวขององค์กรหากคุณกำลังทำโครงการเชิงพาณิชย์อย่างเป็นทางการคุณต้องใช้คุณสมบัติขององค์กรเนื่องจากอัตราการส่งผ่าน SMS สูงกว่าและไม่ใช่เรื่องง่ายที่จะทำให้เกิดการสกัดกั้นการควบคุมความเสี่ยง
2.ใบสมัครลายเซ็น: หลีกเลี่ยงคำที่ละเอียดอ่อนเหล่านั้น
ลายเซ็นเริ่มต้นด้วยข้อความ
[สี่คำนั้น]
แสดงถึงเอกลักษณ์ทางธุรกิจหรือแบรนด์ของคุณ
เคล็ดลับใหญ่ในการหลีกเลี่ยงหลุม: ชื่อของลายเซ็นจะต้องตรงกับตัวย่อบริษัทของคุณชื่อบันทึกเว็บไซต์ชื่อแอปหรือเครื่องหมายการค้าจดทะเบียนหากเป็นการพัฒนาสำหรับลูกค้าลูกค้าจะต้องออก "หนังสือมอบอำนาจ" พร้อมตราประทับอย่างเป็นทางการ
ในเหตุผลในการสมัครให้โพสต์ชื่อโดเมนเว็บไซต์ของคุณโดยตรงหรือภาพหน้าจอของแอพในแอพสโตร์อย่าเขียนคำเปล่าๆและตรวจสอบว่าพี่ชายของคุณเห็นหลักฐานค้อนจริงโดยปกติภายใน30นาที
3.แอปพลิเคชันเทมเพลต: ยิ่งเข้มงวดมากเท่าไหร่ก็ยิ่งผ่านได้ง่ายขึ้นเท่านั้น
เทมเพลตเป็นเนื้อหาเฉพาะของ SMS ซึ่งรหัสยืนยันใช้ตัวยึด
{Code}
แทนที่.
การสาธิตที่ไม่ถูกต้อง: [เทคโนโลยี XX] ว้าวคุณอยู่ที่นี่! รหัสยืนยันการลงทะเบียนของคุณคือ ${code} มาเริ่มการเดินทางลึกลับของคุณ! (เป็นเรื่องง่ายมากที่จะถูกตัดสินว่าเป็นการตลาดหรือข้อความที่ก่อกวนและถูกปฏิเสธ)
การสาธิตมาตรฐาน: [XX Technology] รหัสยืนยันการลงทะเบียนของคุณคือ ${code} โปรดป้อนภายใน5นาทีโปรดอย่าเปิดเผยรหัสยืนยันให้ผู้อื่นทราบ
เลือก "รหัสยืนยัน" สำหรับประเภทเทมเพลตอย่าเลือก "การแจ้งเตือนทาง SMS" หรือ "SMS ส่งเสริมการขาย" ช่องรหัสยืนยันมีน้ำหนักและอัตราการมาถึงสูงสุด
ขั้นตอนที่สอง: การเชื่อมต่อรหัสความเร็ว5นาที (ใช้ Python เป็นตัวอย่าง)
เมื่อคุณได้รับในคอนโซล
รหัส AccessKey
、
รหัสความลับของ AccessKey
、
ชื่อลายเซ็น
และ
แม่แบบรหัส (เช่น SMS_20261234)
หลังจากนั้นคุณสามารถเข้าสู่ขั้นตอนการเริ่มต้นทางเทคนิคอย่างเป็นทางการ
ที่นี่ใช้ SDK เวอร์ชันอัปเกรด V2.0ที่แนะนำโดย Alibaba Cloud ในปี2026 (มีเสถียรภาพมากขึ้นรองรับการเชื่อมต่อแบบยาว) เราใช้ความสง่างามที่สุด
การโทรพร้อมกันแบบอะซิงโครนัส Python 3
ตัวอย่างเช่น:
1.การติดตั้งการพึ่งพาหลัก
ทำงานโดยตรงในสภาพแวดล้อมเสมือนของคุณ:
แบช
Pip install alibabacloud_dysmsapi20170525 = = 3.0.0
2.การใช้บริการส่งแบ็คเอนด์หลัก (พร้อมใช้งานนอกกรอบ)
ไพธอน
Import os
Import random
From alibabacloud_dysmsapi20170525.client import Client as Dysmsapi20170525Client
From alibabacloud_tea_openapi import models as open_api_models
From alibabacloud_dysmsapi20170525 import models as dysmsapi_20170525_models
Class AliSmsService:
Def __init__(self):
#1.อ่านคีย์จากตัวแปรสภาพแวดล้อม (อย่าบังคับให้โค้ด!)
config = open_api_models.Config(
access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),
คีย์ความลับของผู้เข้าถึง = os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET')
)
#2.ชื่อโดเมนที่เข้าถึง SMS ในประเทศแก้ไขสิ่งนี้
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.พารามิเตอร์คำขอมาตรฐานที่จำเป็นสำหรับการสร้าง Alibaba Cloud
Send_sms_request = dysmsapi_20170525_models.SendSmsRequest (
Phone_numbers = phone,
Sign_name = 'ลายเซ็นปกติของคุณ', # แทนที่ด้วยลายเซ็นที่ผ่านการตรวจสอบคอนโซล
Template_code = 'SMS _ 20261234 ', # แทนที่ด้วย ID แม่แบบที่ผ่านการตรวจสอบคอนโซล
Template_param = f '{{"code":"{verify_code}"}' # สตริง JSON ที่เข้มงวด
)
ลอง:
#5.เริ่มต้นคำขอทำสัญญาเครือข่าย
Response = self.client. send_sms(send_sms_request)
#6.ตัดสินสถานะผลตอบแทนของ Alibaba Cloud Gateway
หาก response.body.code == 'OK':
พิมพ์ (f "[สำเร็จ] รหัสยืนยัน {verify_code} ถูกส่งไปยังโทรศัพท์มือถือ: {phone}")
# [การผลิตต้องทำ] เขียน verify_code ลงใน Redis ที่นี่ตั้ง5นาทีเพื่อหมดอายุ
# Redis_client.setex (f "sms_code:{phone}", 300, verify_code)
Return True, verify_code
อื่นๆ:
การพิมพ์ (f "[ล้มเหลว] Alibaba Cloud Gateway ปฏิเสธ: {response.body.message}")
Return False, response.body.message
อี
Xcept Exception as error:
พิมพ์ (f "[ข้อยกเว้น] อินเตอร์เฟซเรียกเครือข่ายกระวนกระวายใจ: {STR (error)}")
Return False, stra (error)
# ทดสอบการโทร
# Sms = AliSmsService()
# Sms. send_verify_code("13800138000")
ขั้นตอนที่สาม: "สามสายป้องกันการระเบิดและฟ้าผ่า" ของสภาพแวดล้อมการผลิตออนไลน์
รหัสสามารถทำงานได้และอย่างดีที่สุดเพียง30% ของงานเท่านั้นที่เสร็จสมบูรณ์อินเทอร์เฟซรหัสยืนยันทาง SMS เป็นแหล่งข้อมูลไก่เนื้อที่ได้รับความนิยมมากที่สุดสำหรับแฮกเกอร์ในเครือข่ายทั้งหมดและเครื่องบินทิ้งระเบิดทาง SMS หากคุณเปิดเผยอินเทอร์เฟซข้างต้นโดยตรงยอดคงเหลือหลายหมื่นดอลลาร์ในคืนเดียวจะกลายเป็นเชื้อเพลิงฟรีสำหรับผู้อื่น
ก่อนที่ระบบจะออนไลน์คุณต้องสร้างประตูเหล็กทั้งสามนี้ในโค้ดส่วนหลังของคุณ:
Gate 1: รหัสยืนยันกราฟิกหรือพฤติกรรม (บล็อกสคริปต์อัตโนมัติ99%)
ไม่อนุญาตให้ผู้ใช้เรียกใช้ API ของ Alibaba Cloud โดยตรงทันทีที่คลิก "รับรหัสยืนยัน"
สถาปัตยกรรมมาตรฐาน: ก่อนที่ผู้ใช้จะคลิกเพื่อส่งแถบเลื่อนอัจฉริยะหรือการตรวจสอบพฤติกรรมปริศนาจะต้องปรากฏขึ้น (เช่น "รหัสยืนยัน2.0" ของ Alibaba Cloud หรือ Cloudflare Turnstile)
หลังจากเสร็จสิ้นการเลื่อนส่วนหน้าคุณจะได้รับ validate_token หลังจากที่ส่วนหลังได้รับโทเค็นเพื่อตรวจสอบความถูกต้องตามกฎหมายแล้วจะได้รับอนุญาตให้เรียกใช้อินเทอร์เฟซ SMS ขั้นตอนนี้สามารถป้องกันแฮกเกอร์ทั้งหมดที่เขียนสคริปต์ Python สำหรับการทิ้งระเบิดอัตโนมัติได้โดยตรง
ประตูที่สอง: Redis กระจายความถี่จำกัดกระแสล็อค (ป้องกันการระเบิดความถี่สูง)
ก่อนที่จะเรียกใช้ Alibaba Cloud API การจำกัดกระแสหลายมิติจะต้องดำเนินการผ่าน Redis:
จำกัดหมายเลขโทรศัพท์เดียว: sms_lock:{โทรศัพท์} การตั้งค่า60วินาทีหมดอายุหมายเลขโทรศัพท์มือถือเดียวกันสามารถคลิกได้เพียงครั้งเดียวภายใน60วินาที
ขีดจำกัด IP ไคลเอ็นต์เดียว: จำกัด IP เครือข่ายภายนอกเดียวกันเพื่อขอรหัสยืนยันสูงสุด10ครั้งต่อวันป้องกันไม่ให้แฮกเกอร์ปัดอินเตอร์เฟซของคุณโดยใช้หมายเลขโทรศัพท์มือถือที่แตกต่างกันนับหมื่น
ขีดจำกัดรวมของวัน: กำหนดเกณฑ์การส่งทั้งหมดของระบบตัวอย่างเช่นบริษัทของคุณใช้เพียง1,000ข้อความต่อวันและกำหนดขีดจำกัดรายวันโดยรวมเป็น5,000ข้อความเมื่อแปรงแล้วระบบจะไม่ทำสัญญาอีกต่อไปเมื่อถึง5,000ฟิวส์อัตโนมัติล็อกความสูญเสียทางการเงินสูงสุด
ประตูที่สาม: "หลักการครั้งเดียว" ของการตรวจสอบรหัสยืนยัน
เมื่อผู้ใช้ป้อนรหัสยืนยันที่ส่วนหน้าเพื่อส่งการลงทะเบียนตรรกะการตรวจสอบของส่วนหลังจะต้องเป็น:
อ่านรหัสยืนยันที่ถูกต้องจาก Redis เพื่อเปรียบเทียบ
ไม่ว่าผลการเปรียบเทียบจะถูกหรือผิดให้ลบรหัสยืนยันนี้ใน Redis ทันที (หรืออนุญาตให้ทิ้งได้หลังจากเกิดข้อผิดพลาดสูงสุด3ครั้ง)
เหตุผล: หากรหัสยืนยันไม่ได้ถูกลบเพียงครั้งเดียวแฮกเกอร์สามารถใช้สคริปต์การระเบิดพร้อมกันได้ในช่วงเวลาที่มีผลบังคับใช้5นาทีให้ใช้คำขอความถี่สูงจาก0
00000ตี999999รหัสยืนยันต้องเป็น "สิ่งมีชีวิตที่ใช้แล้วทิ้ง" และจะตายหากใช้
สรุป
การเข้าถึงรหัสยืนยันทาง SMS ของ Alibaba Cloud การเขียนรหัสทางเทคนิคนั้นง่ายมาก (แพ็คเกจ SDK นั้นสมบูรณ์มาก) ความพยายามที่แท้จริงอยู่นอกรหัส:
เมื่อตรวจสอบคอนโซลให้ใส่ใจกับความสอดคล้องของข้อมูลและให้ความสำคัญกับความเข้มงวดของขีดจำกัดปัจจุบันของ Redis และการตรวจสอบเครื่องจักรเมื่อปรับใช้โค้ด
ด้วยขั้นตอนเหล่านี้อย่างมั่นคงระบบการตรวจสอบการลงทะเบียนของคุณสามารถมีทั้งความเร็วในการออกระดับโรงงานขนาดใหญ่และความสามารถในการป้องกันเหมือนกำแพงเหล็ก
