เคารพขอบเขตของไคลเอ็นต์
ทำงานอยู่ภายในขอบเขตที่โฮสต์อนุญาต
เคารพขอบเขตของไคลเอ็นต์ เป็นบทเรียน MCP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน MCP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน
การรู้ยังไม่เพียงพอ
คุณสามารถดึงรูตและอ่านความสามารถได้ แต่งานที่แท้จริงคือการเคารพข้อมูลเหล่านั้น เซิร์ฟเวอร์ที่น่าเชื่อถือจะทำงานอยู่ภายในขอบเขตที่โฮสต์กำหนดไว้ 🚧
ทำงานอยู่ภายในรูต
ก่อนแตะต้องไฟล์ใด ๆ ให้ยืนยันว่าพาธของไฟล์นั้นอยู่ภายในรูตใดรูตหนึ่งของไคลเอ็นต์ หากไม่อยู่ ให้ปฏิเสธแทนการเข้าถึงพื้นที่นอกขอบเขตที่อนุญาต
แปลงพาธก่อนเสมอ
พาธที่แอบแฝงอย่าง ../../etc สามารถหลบหนีออกจากรูตได้ ให้แปลงเป็นพาธสัมบูรณ์ที่ปรับรูปแบบเป็นมาตรฐานก่อน แล้วจึงเปรียบเทียบกับโฟลเดอร์ที่อนุญาต
from pathlib import Path
real = Path(p).resolve()ตรวจสอบการอยู่ภายในอย่างปลอดภัย
ทดสอบว่าพาธที่แปลงแล้วเป็นพาธสัมพัทธ์เมื่อเทียบกับรูตหรือไม่ ตัวช่วยของ pathlib จะส่งข้อผิดพลาดหากพาธหลุดออกไป ทำให้คุณตัดสินใจได้อย่างชัดเจนว่าจะดำเนินการต่อหรือไม่
real.relative_to(root_path)อย่าใช้ความสามารถที่ไม่มี
หากไคลเอ็นต์ไม่เคยประกาศความสามารถใด ก็อย่าเรียกใช้ การเคารพขอบเขตหมายถึงการเชื่อถือการเจรจาตกลง ไม่ใช่ทดลองเรียกฟีเจอร์ที่ไม่เคยได้รับอนุญาต
ลดความสามารถลงอย่างเหมาะสม
เมื่อไม่มีรูตหรือไม่รองรับรูต อย่าคาดเดาเกี่ยวกับระบบไฟล์ ให้จำกัดขอบเขตการทำงานของเครื่องมือและบอกเหตุผลแก่ผู้ใช้ แทนการหยิบพาธใด ๆ มาใช้ตามใจ
ใช้สิทธิ์เท่าที่จำเป็นเป็นค่าเริ่มต้น
รูตกำหนดขอบเขตภายนอกไว้ แต่คุณสามารถเข้มงวดยิ่งกว่านั้นได้ ขอเฉพาะสิ่งที่งานต้องใช้จริงตามหลักสิทธิ์เท่าที่จำเป็น และอย่าแตะต้องส่วนที่เหลือ
ขอบเขตไม่ได้มีแค่โฟลเดอร์
การเคารพไม่ได้จำกัดอยู่แค่พาธเท่านั้น ให้เคารพจังหวะการทำงานและข้อจำกัดของโฮสต์ด้วย เพื่อไม่ส่งคำเรียกจำนวนมากจนเกินไปหรือเพิกเฉยต่อการยกเลิกที่ผู้ใช้ร้องขอ
ตรวจสอบใหม่หลังการเปลี่ยนแปลง
เมื่อมีการแจ้งเตือน listChanged เกี่ยวกับรายการรูต ให้ตรวจสอบใหม่กับพาธที่เก็บไว้ โฟลเดอร์ที่อนุญาตเมื่อหนึ่งนาทีก่อนอาจอยู่นอกขอบเขตปัจจุบันของผู้ใช้แล้ว
ล้มเหลวอย่างชัดเจน อย่าขยายขอบเขต
หากคำขอชี้ไปนอกขอบเขตของรูต ให้ส่งข้อผิดพลาดที่ชัดเจนซึ่งโมเดลอ่านได้ การปฏิเสธอย่างสุภาพย่อมดีกว่าการทำสิ่งที่ผู้ใช้ไม่เคยอนุญาตโดยเงียบ ๆ
เหตุใดสิ่งนี้จึงสร้างความไว้วางใจ
เซิร์ฟเวอร์ที่เคารพขอบเขตคือเซิร์ฟเวอร์ที่ผู้ใช้ยังคงติดตั้งไว้ การกำหนดขอบเขตที่ดีเปลี่ยนเครื่องมือทรงพลังให้เป็นเครื่องมือปลอดภัยที่ผู้ใช้ยินดีมอบสิทธิ์ให้ 💛
ตรวจสอบอย่างรวดเร็ว
คำขอหนึ่งพุ่งไปยังพาธที่อยู่นอกทุก ๆ รูตที่ประกาศไว้ เซิร์ฟเวอร์ควรทำอย่างไร
สรุป: เคารพข้อจำกัด
คุณแปลงพาธ ยืนยันว่าพาธอยู่ภายในรูต ข้ามความสามารถที่ไม่ได้ประกาศ ลดความสามารถลงอย่างเหมาะสม และปฏิเสธงานที่อยู่นอกขอบเขต นี่คือสิ่งที่ทำให้เซิร์ฟเวอร์น่าเชื่อถือ ✅
คำถามที่พบบ่อย
บทเรียน “เคารพขอบเขตของไคลเอ็นต์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “เคารพขอบเขตของไคลเอ็นต์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส MCP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “เคารพขอบเขตของไคลเอ็นต์”
ทำงานอยู่ภายในขอบเขตที่โฮสต์อนุญาต คุณปฏิบัติ MCP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน MCP Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน MCP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “เคารพขอบเขตของไคลเอ็นต์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน MCP Academy นี้ได้ไหม
ได้ บทเรียน MCP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- Roots บอกอะไรแก่เซิร์ฟเวอร์
- ร้องขอ Roots ของไคลเอ็นต์
- เจรจาความสามารถ
- เคารพขอบเขตของไคลเอ็นต์