ความปลอดภัยของเครื่องมือ WebMCP

Julia Pagnucco
Julia Pagnucco
Alexandra Klepper
Alexandra Klepper

เผยแพร่: 9 มิถุนายน 2026

คุณใช้ Web Model Context Protocol (WebMCP) เพื่อสร้าง และเปิดเผยเครื่องมือที่มีโครงสร้างต่อ Agent AI ที่ทำงานภายในเบราว์เซอร์ได้ ซึ่งรวมถึง Agent ที่ขับเคลื่อนโดยส่วนขยาย เอเจนต์ ใช้โมเดลภาษาขนาดใหญ่ (LLM) กฎ หน่วยความจำ และเครื่องมือเพื่อดำเนินการ ในนามของผู้ใช้

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

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

เราได้ให้คำแนะนำเบื้องต้นเกี่ยวกับความปลอดภัยสำหรับผู้ที่สร้างเครื่องมือด้วย WebMCP เพื่อตอบข้อกังวลเหล่านี้

ใช้คำแนะนำในการใส่คำอธิบายประกอบ

คุณควรเพิ่มคำแนะนำต่อไปนี้เมื่อสร้างเครื่องมือ

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

เปิดเผยเครื่องมือของคุณอย่างระมัดระวัง

document.modelContext.registerTool API ของ WebMCP จะแสดงฟังก์ชันการทำงานของเครื่องมือต่อตัวแทนเท่านั้น โดยค่าเริ่มต้น เว็บไซต์อื่นๆ หรือ iframe ข้ามต้นทาง จะไม่สามารถสังเกตหรือโต้ตอบกับเครื่องมือของคุณได้

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

// https://partner.org

document.modelContext.registerTool({
  name: 'my_shared_tool',
  description: 'Shared across origins',
  // ...
}, {
  exposedTo: ['https://trusted.com', 'https://example.com']
});

เปิดเผยเครื่องมือของคุณเฉพาะกับต้นทางที่คุณไว้วางใจเท่านั้น ซึ่งมีความสำคัญอย่างยิ่งเมื่อเครื่องมือจัดการข้อมูลผู้ใช้หรือส่งผลกระทบต่อผู้ใช้ในลักษณะอื่นๆ

  • เครื่องมือแบบอ่านอย่างเดียว เช่น getFavoriteProducts สามารถเปิดเผยข้อมูลเกี่ยวกับ ผู้ใช้ได้ คุณควรแสดงเครื่องมือเหล่านี้ต่อเว็บไซต์ที่คุณจะแชร์ข้อมูลนี้ด้วยโดยตรง เท่านั้น
  • เครื่องมือที่มีสิทธิ์เข้าถึงแบบอ่านและเขียนจะดำเนินการในนามของผู้ใช้ เครื่องมือเหล่านี้ ควรแสดงต่อต้นทางที่คุณตัดสินใจว่าเชื่อถือได้เมื่อดำเนินการ ในนามของผู้ใช้เท่านั้น เช่น คุณอาจต้องการแสดง postComment ต่อ trustedExample.com แต่ไม่ต้องการแสดงต่อ evilExample.com

กำหนดงบประมาณตัวละคร

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

  • 500 อักขระต่อคำอธิบายเครื่องมือ 1 รายการ
  • 150 อักขระต่อคำอธิบายพารามิเตอร์
  • 30 อักขระต่อชื่อเครื่องมือและชื่อพารามิเตอร์
  • เครื่องมือแต่ละรายการมีอักขระได้ไม่เกิน 1,500 ตัว

เป็นไปได้ว่าเอเจนต์แต่ละรายอาจมีลักษณะแตกต่างกัน และคุณอาจต้องปรับงบประมาณตัวละครตามความคิดเห็นของผู้ใช้

ขั้นตอนถัดไป

เรายังคงทำการวิจัยและสร้างโครงสร้างพื้นฐานที่ปลอดภัยสำหรับ เว็บที่ใช้เอเจนต์ต่อไป ตัวอย่างเช่น มีการอภิปรายเกี่ยวกับการจัดการความยินยอม ในหมู่ฝ่ายต่างๆ อย่างต่อเนื่อง และฉบับร่างของข้อกำหนดมี requestUserInteraction() เพื่อขอข้อมูลจากผู้ใช้แบบไม่พร้อมกันเมื่อมีการเรียกใช้เครื่องมือ

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

หากคุณกำลังสร้างเอเจนต์ เราขอแนะนำให้อ่านข้อควรพิจารณาด้านความปลอดภัยของเอเจนต์สำหรับ WebMCP