ข้ามไปเนื้อหาหลัก

ทำไม readOnlyHint ของ MCP จึงไม่พอป้องกันคำสั่งลบข้อมูล

เจาะลึกปัญหาคำใบ้ readOnlyHint และ destructiveHint ใน Model Context Protocol ที่พบว่า 69% ของเครื่องมือลบข้อมูลไม่มีการใส่ป้ายกำกับ

เรียบเรียงโดย AI
Inewgen
27 Oct 2026ที่มา: Dev.to3 นาทีอ่าน (0 ครั้ง)
แชร์
ทำไม readOnlyHint ของ MCP จึงไม่พอป้องกันคำสั่งลบข้อมูล

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ขนาดตัวอักษร
  • โปรโตคอล MCP ใช้คำใบ้อย่าง readOnlyHint และ destructiveHint อธิบายตัวเอง
  • พบปัญหาใหญ่คือคำใบ้มักขาดหายไปหรือให้ข้อมูลที่ผิดพลาดไม่ตรงกับความเป็นจริง
  • เครื่องมือใน Docker MCP Catalog กว่า 69% ที่มีฤทธิ์ทำลายล้างกลับไม่มีการใส่คำใบ้ใดๆ
  • ทางออกที่ปลอดภัยกว่าคือการควบคุมนโยบายจากฝั่งเกตเวย์ที่คุณควบคุมเอง

ระบบ Model Context Protocol หรือ MCP เปิดโอกาสให้เครื่องมือต่างๆ สามารถอธิบายคุณสมบัติของตัวเองได้ผ่านคำใบ้ โดยคำสั่ง readOnlyHint: true หมายถึงการอ่านข้อมูลเท่านั้น ส่วน destructiveHint: true หมายถึงการลบหรือเขียนทับข้อมูล ซึ่งช่วยให้ไคลเอนต์สามารถตัดสินใจได้ว่าเมื่อไหร่ควรขออนุญาตมนุษย์ก่อนรันเครื่องมือ

ทว่าในการใช้งานจริงกลับพบปัญหาใหญ่สองประการที่ทำให้แนวทางนี้มีความเสี่ยงสูง ประการแรกคือคำใบ้มักจะหายไปเฉยๆ จากการตรวจสอบเครื่องมือ MCP ประมาณ 20,000 รายการสำหรับรายงานเรื่อง MCP tool annotations พบว่าใน Docker's MCP Catalog มีเครื่องมือถึง 69% ที่ทำหน้าที่ลบหรือเขียนทับข้อมูลแต่กลับไม่มีการใส่คำใบ้ใดๆ เลย

69%เครื่องมือลบข้อมูลไม่มีคำใบ้
20,000จำนวนเครื่องมือที่ตรวจสอบ

ประการที่สองคือคำใบ้อาจแสดงผลผิดพลาดได้อย่างไม่น่าเชื่อ มีเซิร์ฟเวอร์แห่งหนึ่งในแคตตาล็อกดังกล่าวที่ทำเครื่องมือลบข้อมูลถึง 15 ตัวให้กลายเป็นแบบอ่านอย่างเดียว รวมถึงคำสั่ง delete ALL integrations ด้วย เนื่องจากตัวเครื่องมือไม่เคยตั้งค่าคำใบ้ ทำให้เฟรมเวิร์กใส่ค่าเริ่มต้นเป็น readOnlyHint: true ให้ทุกตัวโดยอัตโนมัติ แม้ผู้พัฒนาจะแก้ไขภายในหนึ่งสัปดาห์ แต่แคตตาล็อกยังคงให้บริการเวอร์ชันเก่าอยู่ถึงสามเดือน

"For trust & safety and security, clients MUST consider tool annotations to be untrusted unless they come from trusted servers."

ข้อกำหนดอย่างเป็นทางการของ MCP specification

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

ไม่อยากพลาดข่าวใหม่?

สมัครรับสรุปข่าวสารใหม่ทางอีเมล ไม่บ่อยจนรำคาญ

โฆษณา

network gateway server rack data center infrastructure no logo

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง

ในมุมมองด้านความปลอดภัยของปัญญาประดิษฐ์ การพึ่งพาคำอธิบายตัวเอง (Self-reporting) ของเครื่องมือภายนอกเปรียบเสมือนการปล่อยให้ผู้ต้องสงสัยเซ็นรับรองความบริสุทธิ์ของตนเอง การย้ายอำนาจตัดสินใจมาไว้ที่เกตเวย์ส่วนกลาง (Gateway) พร้อมระบบกำหนดนโยบาย (Policy enforcement) จึงเป็นสถาปัตยกรรมที่จำเป็นในการป้องกันความเสียหายร้ายแรงจากการเรียกใช้เครื่องมืออัตโนมัติของ AI agents

การทดลองอย่างรวดเร็วผ่านชุดคำสั่ง DVARA MCP quickstart จะช่วยให้คุณจำลองการทำงานผ่านเกตเวย์ที่ช่วยคัดกรองทุกคำสั่ง โดยใช้คำสั่งโคลนโปรเจกต์จาก GitHub และรันผ่าน Docker เพื่อตั้งค่านโยบายห้ามใช้คำสั่ง delete_customer ไม่ให้ทำงานในเวิร์กสเปซนั้นอย่างเด็ดขาด ไม่ว่าเครื่องมือจะแอบอ้างสถานะใดก็ตาม

ที่มา: Dev.to

ความคิดเห็น

แสดงความคิดเห็น
0/2000

พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้