ตรวจสอบและทำความสะอาดทุกอย่าง
ถือว่าอินพุตที่โมเดลส่งมาไม่น่าเชื่อถือ
ตรวจสอบและทำความสะอาดทุกอย่าง เป็นบทเรียน MCP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน MCP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน
ข้อมูลนำเข้าไม่น่าเชื่อถือ
อาร์กิวเมนต์ทุกตัวที่โมเดลส่งให้เครื่องมือคือ ข้อมูลนำเข้าที่ไม่น่าเชื่อถือ โมเดลอาจซื่อสัตย์ แต่อาร์กิวเมนต์ของโมเดลอาจถูกข้อความแทรกชักนำได้ ดังนั้นต้องตรวจสอบ 🔎
ตรวจสอบก่อนดำเนินการ
ตรวจสอบรูปแบบ ชนิดข้อมูล และช่วงค่าก่อนที่เครื่องมือจะทำงานจริง การตรวจสอบตั้งแต่ทางเข้าจะเปลี่ยนคำขอที่ไม่ชัดเจนและไม่ถูกต้องให้กลายเป็นการปฏิเสธที่ชัดเจนและปลอดภัย
ให้ Pydantic ช่วย
คำใบ้ชนิดข้อมูลและโมเดล Pydantic จะปฏิเสธอาร์กิวเมนต์ที่มีรูปแบบไม่ถูกต้องก่อนที่โค้ดของคุณจะทำงาน ข้อมูลนำเข้านี้ต้องเป็นจำนวนเต็มบวก ดังนั้นสตริงหรือค่าติดลบจะถูก ปฏิเสธตั้งแต่ต้น
from pydantic import Field
@mcp.tool()
def get_page(n: int = Field(gt=0, le=100)) -> str:
return load(n)จำกัดค่าต่าง ๆ
จำกัดขนาด ความยาว และจำนวน ฟิลด์จำกัดจำนวนในคำค้นจะป้องกันไม่ให้โมเดลขอข้อมูลเป็นล้านแถว และเปลี่ยนการเรียกเพียงครั้งเดียวให้กลายเป็น การปฏิเสธการให้บริการ
ทำความสะอาดข้อมูลให้เหมาะกับปลายทาง
การทำความสะอาดข้อมูลหมายถึงการทำให้ข้อมูลนำเข้าปลอดภัยสำหรับปลายทางที่ข้อมูลจะไปอยู่ ค่าที่ปลอดภัยในบันทึกการทำงานอาจเป็นอันตรายในเชลล์ สตริง SQL หรือเส้นทางไฟล์
อย่าสร้าง SQL ด้วยตนเอง
SQL ที่ต่อสตริงเข้าด้วยกันเปิดช่องให้เกิดการแทรกคำสั่ง ใช้ คำค้นแบบมีพารามิเตอร์เพื่อให้ฐานข้อมูลปฏิบัติต่อข้อมูลนำเข้าจากโมเดลเป็นเพียงค่า ไม่ใช่โค้ดที่เรียกใช้ได้
cur.execute(
"SELECT * FROM orders WHERE id = ?",
(order_id,),
)ป้องกันเชลล์
หากเครื่องมือเรียกใช้คำสั่ง อย่านำอาร์กิวเมนต์ไปวางในสตริงเชลล์โดยตรง ให้ส่งเป็น รายการอาร์กิวเมนต์และหลีกเลี่ยงการแยกวิเคราะห์โดยเชลล์ เพื่อไม่ให้ข้อมูลนำเข้าแทรกคำสั่งเพิ่มเติม
แก้ไขและจำกัดเส้นทาง
สำหรับเครื่องมือจัดการไฟล์ ให้แก้ไขเส้นทางเป็นรูปแบบมาตรฐานและยืนยันว่าเส้นทางยังอยู่ภายในรากที่อนุญาต ปฏิเสธทุกสิ่งที่มี การไล่ย้อนเส้นทาง เช่น จุดสองจุด
p = (ROOT / name).resolve()
if not p.is_relative_to(ROOT):
raise ValueError("path escapes root")เมื่อผิดพลาดให้ปิดกั้น
เมื่อข้อมูลนำเข้าไม่ผ่านการตรวจสอบ ให้หยุดและส่งข้อผิดพลาดที่ชัดเจนกลับไป การปิดกั้นเมื่อผิดพลาดย่อมดีกว่าการคาดเดา เพราะการคาดเดาที่ผิดอาจเป็นสิ่งที่ผู้โจมตีต้องการพอดี
อย่าไว้วางใจผลลัพธ์จากเครื่องมือเช่นกัน
ข้อมูลที่เครื่องมือส่งกลับอาจนำคำสั่งแทรกไปต่อได้ ในจุดที่จำเป็น ให้ติดป้ายกำกับหรือทำการหลีกอักขระกับ เนื้อหาที่ดึงมา เพื่อให้โมเดลปฏิบัติต่อเนื้อหานั้นเป็นข้อมูล ไม่ใช่คำสั่ง
ตรวจสอบทุกขอบเขต
ตรวจสอบข้อมูลนำเข้าเมื่อเข้าสู่เครื่องมือ และตรวจสอบอีกครั้งก่อนส่งไปยังฐานข้อมูล ไฟล์ หรือ API แต่ละ ขอบเขตคือโอกาสใหม่ในการตรวจจับสิ่งที่ไม่ปลอดภัย
ตรวจสอบอย่างรวดเร็ว
ตัวเลือกใดป้องกันการแทรกคำสั่งในคำค้น SQL ได้ดีที่สุด
ทบทวน
ถือว่าข้อมูลนำเข้าของเครื่องมือทั้งหมดไม่น่าเชื่อถือ: ตรวจสอบชนิดข้อมูลและช่วงค่า ทำความสะอาดข้อมูลให้เหมาะกับปลายทาง จำกัดเส้นทาง และปิดกั้นเมื่อผิดพลาด อย่าไว้วางใจข้อมูลนำเข้า ✅
คำถามที่พบบ่อย
บทเรียน “ตรวจสอบและทำความสะอาดทุกอย่าง” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ตรวจสอบและทำความสะอาดทุกอย่าง” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส MCP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ตรวจสอบและทำความสะอาดทุกอย่าง”
ถือว่าอินพุตที่โมเดลส่งมาไม่น่าเชื่อถือ คุณปฏิบัติ MCP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน MCP Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน MCP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “ตรวจสอบและทำความสะอาดทุกอย่าง” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน MCP Academy นี้ได้ไหม
ได้ บทเรียน MCP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ภัยคุกคามเฉพาะของ MCP
- การเข้าถึงเครื่องมือด้วยสิทธิ์น้อยที่สุด
- ตรวจสอบและทำความสะอาดทุกอย่าง
- ป้องกันการดำเนินการที่ทำลายข้อมูล