Bảo mật công cụ WebMCP

Julia Pagnucco
Julia Pagnucco
Alexandra Klepper
Alexandra Klepper

Xuất bản: Ngày 9 tháng 6 năm 2026

Video giải thích Web Phần mở rộng Trạng thái của Chrome Mục đích
GitHub Bản dùng thử theo nguyên gốc Bản dùng thử theo nguyên gốc Xem Ý định thử nghiệm

Bạn có thể sử dụng Giao thức ngữ cảnh mô hình web (WebMCP) để tạo và hiển thị các công cụ có cấu trúc cho các tác nhân AI đang chạy trong trình duyệt, bao gồm cả các tác nhân dựa trên tiện ích. Tác nhân sử dụng mô hình ngôn ngữ lớn (LLM), các quy tắc, bộ nhớ và công cụ để thực hiện các hành động thay mặt cho người dùng.

Vì các LLM coi tất cả văn bản, chỉ dẫn và dữ liệu người dùng là một chuỗi mã thông báo duy nhất, nên chúng dễ bị tấn công tiêm câu lệnh gián tiếp, tức là kẻ tấn công đưa vào các chỉ dẫn độc hại. Nhóm của chúng tôi đã viết tài liệu này về tính bảo mật của công cụ để giúp bạn bảo vệ trang web và người dùng của mình khỏi những đối tượng xấu.

Mặc dù một số mô hình có các lớp giải quyết vấn đề tấn công bằng câu lệnh, nhưng không thể đảm bảo an toàn trong mô hình ngôn ngữ lớn (LLM). Các mô hình có bản chất xác suất. Điều quan trọng là bạn phải nhớ rằng đã có các cuộc tấn công bằng câu lệnh lặp lại đối với các hệ thống dựa trên tác nhân sử dụng LLM tiên tiến và tình trạng tấn công trên web đang gia tăng.

Để giải quyết những lo ngại này, chúng tôi đã cung cấp hướng dẫn sơ bộ về bảo mật cho những người xây dựng công cụ bằng WebMCP.

Sử dụng gợi ý chú giải

Bạn nên thêm một số gợi ý khi tạo công cụ:

  • Sử dụng untrustedContentHint khi thích hợp. Nếu một công cụ trả về nội dung do người dùng tạo (UGC) hoặc dữ liệu từ nguồn bên ngoài, hãy cân nhắc việc thêm untrustedContentHint vào công cụ đó. Trường này gắn nhãn rõ ràng cho tải trọng là không đáng tin cậy, để giúp bảo vệ tính toàn vẹn của trang web trong khi cung cấp tín hiệu cho tác nhân rằng dữ liệu này cần được giám sát chặt chẽ hơn.
  • Sử dụng readOnlyHint trên những công cụ không thay đổi trạng thái. Điều này cho phép tác nhân đưa ra quyết định sáng suốt hơn về thời điểm yêu cầu người dùng xác nhận.

Cẩn thận khi để lộ các công cụ của bạn

API WebMCP document.modelContext.registerTool chỉ cung cấp chức năng của công cụ cho các tác nhân. Theo mặc định, các trang web khác hoặc iframe trên nhiều nguồn gốc không thể quan sát hoặc tương tác với các công cụ của bạn.

Bạn có thể cấp quyền truy cập vào công cụ của mình bằng lựa chọn exposedTo trong registerTool cho một loạt các nguồn gốc cụ thể, an toàn. Điều này cho phép những nguồn gốc đó truy cập vào công cụ của bạn khi được nhúng trên trang web của bạn và khi trang web của bạn được nhúng trên nguồn gốc đó.

// https://partner.org

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

Chỉ tiết lộ các công cụ của bạn cho những nguồn mà bạn tin tưởng. Điều này đặc biệt quan trọng khi các công cụ quản lý dữ liệu người dùng hoặc ảnh hưởng đến người dùng theo cách khác.

  • Một công cụ chỉ đọc, chẳng hạn như getFavoriteProducts, có thể tiết lộ thông tin về một người dùng. Bạn chỉ nên cung cấp những công cụ này cho những trang web mà bạn sẽ chia sẻ trực tiếp dữ liệu này.
  • Các công cụ có quyền đọc và ghi sẽ thay mặt người dùng thực hiện hành động. Bạn chỉ nên cung cấp các công cụ này cho những nguồn gốc mà bạn cho là đáng tin cậy khi thay mặt người dùng hành động. Ví dụ: bạn có thể muốn cung cấp postComment cho trustedExample.com, nhưng bạn không muốn cung cấp cho evilExample.com.

Đặt ngân sách cho nhân vật

Để tránh gặp phải các quy tắc hạn chế đối với tác nhân, hãy viết nội dung mô tả và kết quả đầu ra ngắn gọn cho công cụ. Bạn nên sử dụng giới hạn ký tự sau đây để đạt được kết quả tốt hơn:

  • 500 ký tự cho mỗi nội dung mô tả công cụ
  • 150 ký tự cho mỗi nội dung mô tả tham số
  • 30 ký tự cho mỗi tên công cụ và tên thông số
  • Giới hạn 1.500 ký tự cho mỗi đầu ra của công cụ riêng lẻ

Có thể sẽ có một số điểm khác biệt giữa các nhân vật, và bạn có thể muốn điều chỉnh ngân sách nhân vật dựa trên ý kiến phản hồi của người dùng.

Các bước tiếp theo

Chúng tôi đang tiếp tục nghiên cứu và xây dựng một cơ sở hạ tầng an toàn cho web dựa trên tác nhân. Ví dụ: hiện đang có cuộc thảo luận về việc quản lý sự đồng ý giữa các bên và bản nháp đặc tả bao gồm requestUserInteraction()hoạt động đầu vào của người dùng để yêu cầu một cách không đồng bộ khi thực thi công cụ.

Bạn dự định triển khai WebMCP trong ứng dụng của mình như thế nào? Bạn có lo ngại nào khác, về vấn đề bảo mật hay không? Nếu bạn đăng ký dùng thử bản dùng thử theo nguyên gốc WebMCP, chúng tôi muốn biết về trải nghiệm của bạn:

Nếu đang tạo một tác nhân, bạn nên đọc bài viết Những điểm cần cân nhắc về tính bảo mật của tác nhân đối với WebMCP.