ไทย

วิดีโอและคำบรรยาย · ตัวดาวน์โหลดสื่อโดยตรง

URL ที่ลงนามและหมดอายุ: เหตุใดลิงก์โดยตรงจึงหยุดทำงานได้ในวันพรุ่งนี้

· พื้นหลัง

URL ความปลอดภัย ดาวน์โหลด

ไฟล์ URL มีลายเซ็นและพารามิเตอร์การหมดอายุข้างนาฬิกา
ภาพประกอบเวกเตอร์ต้นฉบับ ToolAcre

ลิงก์ตรงจำนวนมากมีลายเซ็นและเวลาหมดอายุในสตริงการสืบค้น โพสต์นี้จะอธิบายวิธีทำงานของ URL ที่กำหนดไว้ เหตุใด CDN และบริการจัดเก็บข้อมูลจึงใช้งาน URL เหล่านี้ และวิธีการจดจำก่อนที่จะล้มเหลว

ลิงก์ใช้งานได้ในวันศุกร์และส่งกลับข้อผิดพลาดในวันจันทร์ ซึ่งเป็นรูปแบบเบื้องหลังลิงก์โดยตรงที่ 'ใช้งานไม่ได้' ส่วนใหญ่

ลิงก์จะสำเร็จในวันศุกร์และส่งคืนข้อผิดพลาด HTTP ในวันจันทร์โดยที่ไฟล์ไม่ย้าย แบบสอบถามอาจมีการอนุญาตแบบจำกัดเวลาซึ่งความถูกต้องสิ้นสุดลงระหว่างความพยายาม

ToolAcre รายงานสถานะไม่สำเร็จที่อ่านได้ และบันทึกว่าที่อยู่อาจหมดอายุ ย้าย หรือจำเป็นต้องลงชื่อเข้าใช้ จะไม่ตีความการหมดอายุใหม่เป็น CORS เมื่อมีการตอบกลับ HTTP การโอนย้ายจำนวนมากมีความเสี่ยงเป็นพิเศษต่อช่องว่างของเวลานี้ เนื่องจากลิงก์ที่ถูกต้องอาจหมดอายุได้หลังจากที่แชร์ แต่ก่อนที่ผู้รับจะเริ่มหรือใช้งานเสร็จสิ้น การบันทึกที่ยาวนานจะขยายความเสี่ยงด้านเวลานี้เนื่องจากการอนุญาตอาจล่วงเลยระหว่างการแชร์ การเริ่ม และการถ่ายโอนให้เสร็จสิ้น

URL ที่ลงนามคืออะไร — เส้นทางไฟล์ปกติบวกด้วยลายเซ็น การหมดอายุ และบางครั้งเป็น IP ที่อนุญาต ทั้งหมดนี้อยู่ในสตริงการสืบค้น

URL ที่ลงชื่อจะรวมเส้นทางทรัพยากรธรรมดาเข้ากับค่าที่ใช้โดยระบบการให้บริการเพื่อตรวจสอบการอนุญาต สิ่งเหล่านี้อาจแสดงถึงลายเซ็น การหมดอายุ ขอบเขตข้อมูลประจำตัว นโยบาย หรือข้อจำกัดของลูกค้า

ชื่อพารามิเตอร์และการเข้ารหัสเป็นชื่อเฉพาะของผู้ให้บริการ เบราว์เซอร์จะถือว่าข้อมูลเหล่านั้นเป็นข้อมูลการสืบค้น ในขณะที่เซิร์ฟเวอร์จะตัดสินใจว่าชุดค่าผสมนั้นถูกต้องหรือไม่ตามเวลาที่ร้องขอ บางรูปแบบผูกวิธีการหรือส่วนหัวด้วย ดังนั้นผู้ให้บริการอาจอนุญาต GET แต่ปฏิเสธ HEAD; มีเพียงอัลกอริธึมการลงนามที่เป็นเอกสารเท่านั้นที่สามารถอธิบายผลลัพธ์นั้นได้ ผู้ให้บริการบางรายรวมวิธีการหรือส่วนหัวที่เลือกไว้ในการยืนยัน โดยอนุญาตให้ GET ในขณะที่ปฏิเสธ HEAD ภายใต้ข้อความค้นหาเดียวกันที่มองเห็นได้

เหตุใดบริการจัดเก็บข้อมูลและ CDN จึงใช้บริการเหล่านี้ — แบ่งปันไฟล์ส่วนตัวโดยไม่ต้องเปิดเผยต่อสาธารณะหรือต้องเข้าสู่ระบบ

บริการจัดเก็บข้อมูลและ CDN ใช้ที่อยู่ที่ลงนามเพื่อแบ่งปันวัตถุส่วนตัวโดยไม่ทำให้เส้นทางของวัตถุนั้นเป็นสาธารณะอย่างถาวรหรือแนบการเข้าสู่ระบบแบบโต้ตอบกับการดาวน์โหลดทุกครั้ง

การครอบครองลิงค์สดจึงเป็นเรื่องละเอียดอ่อน หลีกเลี่ยงการวางลงในรีเลย์ที่ไม่น่าเชื่อถือ เผยแพร่ภาพหน้าจอ หรือปล่อยไว้ในบันทึกที่ใช้ร่วมกันนอกเหนือจากขั้นตอนการทำงานที่ได้รับอนุญาต ความถูกต้องระยะสั้นจะช่วยลดการเปิดเผยหากลิงก์รั่วไหล ในขณะที่บันทึกการเพิกถอนและการเข้าถึงยังคงความสามารถของผู้ให้บริการ แทนที่จะเป็นฟังก์ชันของ URL ที่ดาวน์โหลดมาเอง ความถูกต้องที่สั้นจะช่วยลดการสัมผัสจากการรั่วไหล ในขณะที่การเพิกถอนและการบันทึกการเข้าถึงยังคงความสามารถของผู้ให้บริการที่ออก

การอ่านสตริงการสืบค้น - การระบุการประทับเวลาหมดอายุและพารามิเตอร์ลายเซ็นในรูปร่าง URL ทั่วไป

ค้นหาชื่อแบบสอบถามที่แนะนำการหมดอายุ ลายเซ็น โทเค็น นโยบาย หรือการรับรองความถูกต้องที่นำหน้าผู้ขาย ค่าที่คล้ายยุคอาจแสดงถึงกำหนดเวลา แต่จำเป็นต้องมีเอกสารประกอบก่อนที่จะแปลง

Normalizer ของ ToolAcre จงใจเก็บฟิลด์สไตล์ `token`, `expires`, `signature` และ X-Amz ไว้ โดยจะลบเฉพาะคีย์ที่มีรูปแบบการวิเคราะห์ที่รู้จักเนื่องจากการลอกการอนุญาตจะเปลี่ยนคำขอที่อยู่ อย่าถอดรหัสหรือลบพารามิเตอร์ที่ไม่คุ้นเคยโดยไม่ตั้งใจ เนื่องจากค่าที่ดูทึบอาจเป็นส่วนหนึ่งของคำขอ Canonical ที่ลงนามได้ แม้ว่าชื่อจะไม่ชัดเจนก็ตาม พารามิเตอร์ที่ไม่รู้จักอาจมีส่วนร่วมในการลงนามตามรูปแบบบัญญัติแม้ว่าชื่อจะดูไม่เกี่ยวข้องกับความปลอดภัยก็ตาม ดังนั้นให้รักษาไว้ไม่เปลี่ยนแปลง

ตัวอย่างการทำงาน: ลิงก์พื้นที่เก็บข้อมูลที่มีการประทับเวลา — คำนวณเมื่อหมดอายุและข้อผิดพลาดจะเป็นอย่างไรในภายหลัง

สมมติว่าเอกสารประกอบของผู้ให้บริการกำหนดพารามิเตอร์การหมดอายุเป็นวินาทียุค แปลงตามกฎที่บันทึกไว้และเปรียบเทียบกับเวลา UTC ปัจจุบันก่อนเริ่มการถ่ายโอนจำนวนมาก

หลังจากกำหนดเวลา โฮสต์อาจส่งคืน 403 ข้อผิดพลาดอื่น หรือการเปลี่ยนเส้นทาง ไม่มีรูปแบบการตอบสนองที่เป็นสากล หลักฐานที่เป็นรูปธรรมคือสถานะและเนื้อหาที่ให้บริการโดยผู้ให้บริการรายนั้น ไม่ใช่ข้อความที่ประดิษฐ์ขึ้น หากโฮสต์จัดเตรียมเนื้อหาข้อผิดพลาดที่มีโครงสร้าง ให้เก็บรักษาไว้สำหรับเจ้าของโดยไม่ต้องเผยแพร่ที่อยู่ที่ลงนามซึ่งสร้างข้อผิดพลาดดังกล่าว เก็บการตอบสนองข้อผิดพลาดที่มีโครงสร้างไว้สำหรับเจ้าของในขณะเดียวกันก็ปกป้องที่อยู่ที่ลงนามซึ่งสร้างขึ้นจากการเปิดเผยในวงกว้าง

สิ่งที่ไม่ครอบคลุมถึงคือการต่ออายุลิงก์ ซึ่งมีเพียงเจ้าของไฟล์เท่านั้นที่สามารถทำได้

ผู้ดาวน์โหลดไม่สามารถต่ออายุ ลาออก รีเฟรช หรือขยายที่อยู่ได้ เฉพาะฝ่ายที่ควบคุมแหล่งที่มาหรือระบบการแบ่งปันที่ได้รับอนุญาตเท่านั้นที่สามารถออกลิงก์ที่ถูกต้องอื่นได้

นอกจากนี้ยังไม่รักษาเซสชันการลงชื่อเข้าใช้เนื่องจากข้อมูลประจำตัวถูกละเว้น หากการเข้าถึงต้องใช้คุกกี้ของบัญชีมากกว่าการอนุญาต URL ไฟล์นั้นอยู่นอกเหนือการออกแบบของผลิตภัณฑ์นี้ การเปลี่ยนการประทับเวลาด้วยตนเองจะทำให้ลายเซ็นส่วนใหญ่ใช้ไม่ได้ เนื่องจากกำหนดเวลาเข้าร่วมในการตรวจสอบเซิร์ฟเวอร์ นั่นไม่ใช่กลไกการขยาย โดยปกติแล้วการเปลี่ยนการประทับเวลาจะทำให้การยืนยันเป็นโมฆะ เนื่องจากกำหนดเวลานั้นมีส่วนทำให้เกิดลายเซ็น แทนที่จะทำหน้าที่เป็นข้อมูลเมตาที่แก้ไขได้

ประเด็นสำคัญ: ดาวน์โหลดในขณะที่ลิงก์แสดงอยู่ — วิธีตรวจสอบ URL ของ Direct Media Downloader และประกาศการดึงข้อมูลว่าพอดีกับลิงก์ที่หมดอายุ

ดาวน์โหลดในขณะที่ลิงก์ที่ได้รับอนุญาตแสดงอยู่และไฟล์นั้นเหมาะสมกับเวิร์กโฟลว์ของเบราว์เซอร์ การตรวจสอบภายในจะยืนยันว่าที่อยู่เริ่มต้นเป็นไปตามรูปแบบและนโยบายของโฮสต์ จากนั้นคำขอที่ชัดเจนจะช่วยให้ต้นทางประเมินลายเซ็นได้

ประกาศของโฮสต์ไม่ได้เปิดเผยว่าโทเค็นยังคงใช้งานได้หรือไม่ ลิงก์ตรวจสอบสามารถทดสอบความสามารถในการเข้าถึงด้วย HEAD แต่ผู้ให้บริการบางรายจัดการ HEAD แตกต่างจาก GET ดังนั้นจึงไม่ใช่การต่ออายุหรือการรับประกัน สำหรับเวิร์กโฟลว์การเก็บถาวร ให้ประสานการออกลิงก์กับหน้าต่างการถ่ายโอน และตรวจสอบไบต์ที่บันทึกไว้ก่อนที่จะลบสำเนาที่เชื่อถือได้ของผู้ส่ง ประสานการออกกับกรอบเวลาการโอนที่วางแผนไว้ จากนั้นตรวจสอบสินทรัพย์ที่เสร็จสมบูรณ์ก่อนที่จะเลิกใช้สำเนาที่เชื่อถือได้ของผู้ส่ง