0Pricing
MCP Academy · บทเรียน

ตรวจสอบและทำความสะอาดทุกอย่าง

ถือว่าอินพุตที่โมเดลส่งมาไม่น่าเชื่อถือ

ตรวจสอบและทำความสะอาดทุกอย่าง เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ภัยคุกคามเฉพาะของ MCP
  2. การเข้าถึงเครื่องมือด้วยสิทธิ์น้อยที่สุด
  3. ตรวจสอบและทำความสะอาดทุกอย่าง
  4. ป้องกันการดำเนินการที่ทำลายข้อมูล
← กลับไปที่ MCP Academy