การเข้าถึงบริการ Alibaba Cloud Video on Demand (VOD): ตระหนักถึงการป้องกันการโจรกรรมและการเล่นออนไลน์ที่ราบรื่น
เมื่อทำโครงการวิดีโอสิ่งที่ลำบากที่สุดไม่ใช่วิธีการเขียนโปรแกรมเล่นที่ส่วนหน้าแต่เป็นปัญหาการดำเนินการและการบำรุงรักษาที่สมจริงอย่างยิ่งสองประการ:
ค่าใช้จ่ายแบนด์วิดท์และการหยุดทำงาน: ไฟล์วิดีโอสามารถวางไว้บนเซิร์ฟเวอร์ของคุณเองได้หลายสิบหรือหลายร้อยเมกะไบต์หากคุณวางไว้บนเซิร์ฟเวอร์ของคุณโดยตรงระบบจะติดขัดหากคุณดูระบบในเวลาเดียวกันและค่าบริการข้อมูลเครือข่ายสาธารณะรายเดือนจะเป็นหลุมลึก
วิดีโอถูกขโมยและถูกแฮ็ก: เพื่อนหรือผู้ใช้ที่ประสงค์ร้ายบางรายคลิกขวาเพื่อคัดลอกลิงก์การเล่นวิดีโอในหน้าเว็บของคุณโดยตรงและโพสต์บนเว็บไซต์ของตนเองค่าแบนด์วิดท์ทั้งหมดที่คุณจ่ายไปทำให้เป็นชุดแต่งงานสำหรับคนอื่น
ในยุคคลาวด์ดั้งเดิมวิธีแก้ปัญหาที่ปลอดภัยที่สุดคือการโฮสต์วิดีโอไปยัง Alibaba Cloud
วิดีโอออนดีมานด์ (VOD,Video on Demand)
บริการ.
บทช่วยสอนของวันนี้ไม่ได้พูดถึงทฤษฎีทางเทคนิคที่ว่างเปล่าแต่เป็นสินค้าแห้งบริสุทธิ์โดยตรงนำคุณไปสู่วิธีการต่อสู้จริงที่มีเหตุผลที่สุด
รับการเล่นสตรีมวิดีโอแบบเร่งความเร็วและวางแนวป้องกันที่ตายแล้วสองแนวของ "Referer Anti-theft Chain URL Appraisal"
ล็อคสินทรัพย์วิดีโอของคุณอย่างสมบูรณ์
สถาปัตยกรรมหลัก: วิดีโอออนดีมานด์ทำงานอย่างไร?
ก่อนที่จะเริ่มใช้เวลา10วินาทีในการทำความเข้าใจลิงก์หลักของ VOD:
ข้อความธรรมดา
[อัปโหลดวิดีโอในพื้นหลัง] ──> [การแปลงรหัสอัตโนมัติ VOD] ──> [เก็บชิ้นส่วนใน OSS] ──> [แจกจ่ายไปยังโหนดขอบ CDN]
│
[เบราว์เซอร์ผู้ใช้] <── 3.รับ URL ที่ปลอดภัยและถอดรหัสในเครื่องเล่น ── [URL ที่ถูกต้องคำนวณโดยแบ็คเอนด์] <── 1.เริ่มคำขอเล่น
พูดง่ายๆก็คือวิดีโอไม่สามารถเล่นได้โดยตรงในภาพยนตร์ต้นฉบับ VOD จะทำลายวิดีโอของคุณโดยอัตโนมัติแปลงรหัสเป็นไฟล์สตรีมมิ่งมาตรฐานที่มีความคมชัดต่างกันจากนั้นส่งไปยังทุกส่วนของประเทศ
CDN (เครือข่ายการจัดส่งเนื้อหา)
โหนดเมื่อผู้ใช้เล่นมันจะดึงแคชของ CDN ที่อยู่ใกล้ๆโดยตรงซึ่งไม่เพียงแต่เร็วเท่านั้นแต่ยังไม่ใช้แบนด์วิดท์เซิร์ฟเวอร์ของคุณเองเลย
ขั้นตอนที่1: การกำหนดค่าฐานคอนโซล (3นาที)
บริการที่ซื้อใหม่เป็นกระดาษเปล่าเราจำเป็นต้องจับคู่ชื่อโดเมนและกลยุทธ์การแปลงรหัสก่อน
1.ผูกและแจกจ่ายชื่อโดเมน
วิดีโอออนดีมานด์ต้องผูกชื่อโดเมนของคุณเอง (ต้องยื่น) เป็น "ชื่อโดเมนการเล่นวิดีโอ" คุณไม่สามารถใช้ชื่อโดเมนทดสอบเริ่มต้นของ Alibaba Cloud ได้
ลงชื่อเข้าใช้คอนโซล Alibaba Cloud และค้นหาเพื่อป้อน "Video VOD on Demand"
ในเมนูด้านซ้ายให้คลิก "การจัดการการกำหนดค่า" $ \ rightarrow $ "แจกจ่ายการกำหนดค่าแบบเร่ง" $ \ rightarrow $ "การจัดการชื่อโดเมน"
คลิก "เพิ่มชื่อโดเมน" เลือก "การเร่งความเร็วตามความต้องการ" สำหรับประเภทธุรกิจและป้อนชื่อโดเมนย่อยของคุณ (เช่น video.yourname.com)
เมื่อสร้างเสร็จแล้ว Alibaba Cloud จะให้ที่อยู่ CNAME แก่คุณเอาที่อยู่นี้
ไปที่พื้นหลังการแก้ปัญหาชื่อโดเมนของคุณ (เช่น Alibaba Cloud DNS) และเพิ่มระเบียน CNAME เฉพาะเมื่อการวิเคราะห์มีผลการเร่ง CDN จะทำงานอย่างเป็นทางการ
2.การกำหนดค่าแม่แบบการแปลงรหัส (ที่สำคัญสำหรับการเล่นที่ราบรื่น)
วิดีโอต้นฉบับ (เช่น MP4ที่บันทึกด้วยโทรศัพท์มือถือ) มีขนาดใหญ่และอัตราบิตไม่คงที่ทำให้ติดขัดได้ง่ายในสภาพแวดล้อมที่มีเครือข่ายไม่ดีเราจำเป็นต้องปล่อยให้ระบบตัดมันโดยอัตโนมัติและลดปริมาณ
ในเมนูด้านซ้ายไปที่ "การตั้งค่าทั่วโลก" $ \ rightarrow $ "แปลงรหัสกลุ่มแม่แบบ"
คลิก "เพิ่มกลุ่มเทมเพลตการแปลงรหัส"
รูปแบบแพคเกจ: ขอแนะนำให้เลือก HLS (M3U8)
💡ทำไมต้องเลือก HLS/M3U8? การเล่น MP4ต้องรอให้ไฟล์ทั้งหมดดาวน์โหลดส่วนหนึ่งเพื่อสร้างดัชนีและรูปแบบ HLS คือการตัดวิดีโอเป็นชิ้นเล็กๆจำนวนนับไม่ถ้วนเป็นเวลา10วินาทีผู้ใช้ดาวน์โหลดมากแค่ไหนเมื่อเล่นไม่เพียงแต่เปิดในไม่กี่วินาทีแต่ยังกรอไปข้างหน้าและลองใหม่ได้อย่างราบรื่นมากและยังสามารถสลับความราบรื่นตามเครือข่ายโดยอัตโนมัติ
ตรวจสอบความคมชัดที่คุณต้องการ (เช่น SD, HD ประสิทธิภาพสูง) และคลิกบันทึก
ขั้นตอนที่2: วางแนวป้องกันสองแนวป้องกันที่ตายแล้ว (2นาที)
เมื่อชื่อโดเมนตรงกันคุณต้องใช้มาตรการรักษาความปลอดภัยทันทีหากคุณไม่ได้อยู่ในเครือข่ายป้องกันการโจรกรรมเมื่อชื่อโดเมนการเล่นของคุณถูกเปิดเผยทุกคนสามารถเข้าถึงการเข้าชมของคุณได้โดยตรง
แนวป้องกันแรก: Referer Anti-theft Chain (Anti-Xiaobai)
หลักการของมันคือการตรวจสอบ "ใครขอวิดีโอนี้" หากคำขอถูกส่งมาจาก Baidu หรือเว็บไซต์ขนาดเล็กของผู้อื่นให้ปฏิเสธโดยตรง
ในรายการ "การจัดการชื่อโดเมน" ให้คลิก "การกำหนดค่า" ทางด้านขวาของชื่อโดเมนที่คุณเพิ่งผูกไว้
คลิก "Access Control" $ \ rightarrow $ ทางด้านซ้ายเพื่อค้นหา "Referer Anti-theft Chain" แล้วคลิกแก้ไข
ประเภท: เลือก "รายการสีขาว"
รายชื่อผู้อ้างอิง: ป้อนชื่อโดเมนเว็บไซต์ของคุณเองทีละชื่อตัวอย่างเช่น:
อนุญาตให้ Referer ว่าง: หากคุณต้องการฝังวิดีโอของคุณในแอปบนอุปกรณ์เคลื่อนที่หรืออนุญาตให้ผู้ใช้เปิดโดยตรงในแถบที่อยู่ของเบราว์เซอร์ให้เลือก "ใช่" หากคุณจำกัดเฉพาะการดูในหน้าเว็บของคุณเองอย่างเคร่งครัดคุณต้องตรวจสอบ "ไม่".
แนวป้องกันที่สอง: การประเมิน URL (การป้องกันหลัก: วิธีการรักษาชีวิตหลัก)
การอ้างอิงสามารถปลอมแปลงได้ง่ายโดยแฮกเกอร์โดยการแก้ไข HTTP Header ในการล็อควิดีโออย่างสมบูรณ์คุณต้องเปิด
การประเมิน URL
。
หลังจากเปิดแล้วสตริงการเข้ารหัส (เช่น
?Auth_key = ประทับเวลา-ตัวเลขสุ่ม-MD5
)。สตริงการเข้ารหัสนี้ถูกคำนวณและสร้างขึ้นแบบไดนามิกโดยเซิร์ฟเวอร์แบ็คเอนด์ของคุณเองเมื่อผู้ใช้คลิกเพื่อเล่นและ
โดยปกติจะใช้ได้เพียง30นาที
。หลังจากหมดอายุแฮกเกอร์จะไม่สามารถเล่นได้แม้ว่าพวกเขาจะได้รับลิงก์ทั้งหมดก็ตาม
นอกจากนี้ในหน้า "การควบคุมการเข้าถึง" ของชื่อโดเมนให้เปลี่ยนไปที่แท็บ "การตรวจสอบ URL"
คลิกแก้ไขเพื่อเปลี่ยนสถานะเป็น "เปิด"
คีย์หลัก/คีย์สแตนด์บาย: อินพุตแบบสุ่ม
สตริงยาว (เช่น MySecretKey2026) คลิกบันทึกจำคีย์นี้ไว้มันเป็นคีย์ที่จะใช้ในโค้ดของเราในภายหลัง
เวลาที่ถูกต้องเริ่มต้นถูกตั้งค่าเป็น1800วินาที (30นาที)
ขั้นตอนที่3: Back-end Spring Boot สร้าง URL การพิสูจน์ตัวตนแบบไดนามิก (3นาที)
ตอนนี้เราต้องการบรรลุ: เมื่อผู้ใช้คลิกวิดีโอที่ส่วนหน้าส่วนหลังจะคำนวณลิงก์การเล่นที่ปลอดภัยตามเวลาผ่าน "คีย์หลัก" ในตอนนี้
1. นำเข้าข้อกำหนดพึ่งพิง
แนะนำเครื่องมือหลักของ Alibaba Cloud On Demand ในโครงการ Spring Boot ของคุณ:
<ความพึ่งพิง>
<GroupI d>org.apache.com mons</groupId>
<ArtifactId> commons-lang3</artifactId>
<Version> 3.12.0</version>
</dependency>
<ความพึ่งพิง>
<GroupId> commons-codec</groupId>
<ArtifactId> commons-codec</artifactId>
<Version> 1.15</version>
</dependency>
2.เขียนเครื่องมืออัลกอริทึมการตรวจสอบสิทธิ์
ไม่จำเป็นต้องแนะนำ SDK ขนาดใหญ่อย่างเป็นทางการที่หนักหน่วงโซลูชันการรับรองความถูกต้อง URL A ของ Alibaba Cloud เป็นอัลกอริทึมลายเซ็น MD5มาตรฐานคัดลอกรหัสสินค้าแห้งบริสุทธิ์ที่ฉันปรับปรุงให้คุณโดยตรง:
ขั้นตอนที่สาม: การพัฒนาคอมโพเนนต์นับถอยหลังด้วย Vue ฝั่งหน้าจอผู้ใช้ (1นาที)
ส่วนแบ็กเอนด์จัดการเรียบร้อยแล้วทางฟรонтเอนด์เราต้องป้องกันไม่ให้ผู้ใช้กดปุ่ม “ส่ง” อย่างรวดเร็วโดยจะต้องสร้างระบบนับถอยหลังมาตรฐานเป็นเวลา60วินาที
ที่นี่ใช้
Vue 3 (Composition API) Axios
ตัวอย่างเช่นขอนำเสนอโค้ดที่เข้าใจง่ายที่สุดโดยตรง:
<แม่แบบ>
<div class="กล่องข้อความสั้น">
<input type="text" v-model="phone" placeholder="โปรดป้อนหมายเลขโทรศัพท์มือถือ" />
<ตัวปุ่ม :disabled="isCounting" @click="handleSend">
{{ isCounting ? '${countdown} วินาทีแล้วจะขอใหม่': 'ขอรหัสยืนยัน' }}
</ปุ่ม>
</div>
</เทมเพลต>
<สคริปต์ตั้งค่า>
นำเข้า {ref} จาก 'vue';
นำเข้า axios จาก 'axios';
const phone = ref('');
const countdown = ref(60);
const isCounting = ref(false);
ให้ตัวจับเวลาเป็น null;
const handleSend = async () => {
ถ้าไม่ใช่ (/^1[3-9]\d{9}$/.test(phone.value)) {
แจ้งเตือน('โปรดป้อนหมายเลขโทรศัพท์มือถือที่ถูกต้อง');
กลับ;
}
ลอง {
// เรียกใช้ API ฝั่งเซิร์ฟเวอร์
Const res = await axios.post('/api/sms/send? โทรศัพท์=${โทรศัพท์ค่า}');
แจ้งเตือน(res.data);
// เปิดใช้งานการนับถอยหลัง
เริ่มนับถอยหลัง();
} รับผิดชอบ (ข้อผิดพลาด) {
แจ้งเตือน(error.response?. ข้อมูล || 'การร้องขอล้มเหลว');
}
};
const เริ่มต้นนับถอยหลัง = () => {
isCounting.value = true;
เวลาถอยหลัง.value = 60;
Timer = setInterval (
() => {
countdown.value--;
ถ้า (countdown.value น้อยกว่าหรือเท่ากับ0) {
clearInterval(timer);
isCounting.value = false;
}
}, 1000);
};
</script>
คู่มือหลีกเลี่ยงข้อผิดพลาดในสภาพแวดล้อมการผลิต (ประสบการณ์อันเจ็บปวดจากการปฏิบัติงานด้านโอเปอเรชันส์)
ระวังอินเทอร์เฟซอาจถูกแฮกเกอร์ “โจมตีด้วยข้อความสแปม”! ทันทีที่ API เปิดใช้งานแฮกเกอร์จะใช้สคริปต์อัตโนมัติส่งคำร้องไปยัง API /api/sms/send ของคุณอย่างรัวด้วยหมายเลขโทรศัพท์แบบสุ่มหลายหมื่นหมายเลขแค่คืนเดียวก็สามารถหักยอดเงินคงเหลือในบัญชีอาลีคลาวด์ของคุณจนหมดได้เลยมาตรการป้องกันขั้นเด็ดขาด: นอกจากการตั้งเวลาถอยหลัง60วินาทีที่ฝั่งหน้าจอและการใช้ Redis ที่ฝั่งเซิร์ฟเวอร์เพื่อจำกัดความถี่ของหมายเลขโทรศัพท์แต่ละเบอร์ให้อยู่ที่ไม่เกิน60วินาทีแล้วสำหรับ API ที่ใช้ส่ง SMS จำเป็นต้องบังคับให้มีการเพิ่ม “รหัสยืนยันแบบภาพ” หรือ “ระบบยืนยันมนุษย์–เครื่องจักรแบบเลื่อนลาก” เข้าไปด้วยเฉพาะคำขอที่ถูกต้องซึ่งประกอบภาพจิ๊กซอว์สำเร็จเท่านั้นระบบหลังบ้านจึงจะส่งข้อความไป
ทำให้เกิดข้อผิดพลาดในการรายงาน "การจำกัดความถี่" ของ Alibaba Cloud Alibaba Cloud SMS มาพร้อมกับชุดกลไกการควบคุมการไหลและการป้องกันการรูด (หมายเลขโทรศัพท์มือถือเดียวไม่เกิน1หมายเลขภายใน1นาทีไม่เกิน5หมายเลขภายใน1ชั่วโมงและไม่เกิน10หมายเลขใน1วัน). หากคุณทดสอบในเครื่องของตัวเองแล้วส่งข้อความหาตัวเองอย่างรัวๆแล้วจู่ๆก็เกิดข้อผิดพลาด isv.BUSINESS_LIMIT_CONTROL อย่าเพิ่งตกใจไม่ใช่ว่าโค้ดเขียนผิดแต่เป็นเพราะคุณถูกจำกัดอัตราการเรียกใช้งานโดย Alibaba Cloud ซึ่งจะถูกปลดล็อกให้อัตโนมัติในวันพรุ่งนี้
เมื่อผ่านกระบวนการแบบครบวงจรทั้งฝั่งไคลเอนต์และเซิร์ฟเวอร์แล้วแอปพลิเคชันแบบไมโครเซอร์วิสของคุณก็จะมีความสามารถในการแจ้งเตือนด้วยข้อความสั้นที่เป็นไปตามมาตรฐานและความปลอดภัยอย่างเป็นทางการรีบจัดเตรียมแล้วไปลองดูกันเลย!

