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, Lần cập nhật gần đây nhất: Ngày 1 tháng 9 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 được hỗ trợ bởi tiện ích. Tác nhân sử dụng mô hình ngôn ngữ lớn (LLM), quy tắc, bộ nhớ và các công cụ để thực hiện hành động thay mặt cho người dùng.

Vì LLM coi tất cả văn bản, hướng 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ị tiêm câu lệnh gián tiếp, tức là kẻ tấn công đưa vào các hướng 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 đề chèn 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. Bạn cần lưu ý rằng đã có các cuộc tấn công tiêm câu lệnh (prompt injection) lặp lại vào các hệ thống dựa trên tác nhân sử dụng LLM hiện đại, và tần suất các cuộc 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ú thích

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 consequentialHint cho các hành động có mức độ rủi ro cao hoặc không thể đảo ngược. Nếu việc thực thi một công cụ dẫn đến các hành động quan trọng, chẳng hạn như đặt chuyến đi hoặc chuyển tiền, hãy đặt consequentialHint: true để tác nhân hoặc trình duyệt có thể yêu cầu người dùng xác nhận trước khi thực thi.
  • Sử dụng readOnlyHint trên những công cụ không thay đổi trạng thái. Nhờ đó, tác nhân có thể đư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 nhân viên. Theo mặc định, các trang web khác hoặc iframe khác 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

await 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ề 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ẽ hành động thay mặt cho người dùng. Bạn chỉ nên cung cấp những công cụ này cho những nguồn gốc mà bạn quyết định có thể tin tưởng khi thay mặt người dùng của bạn hành động. Ví dụ: bạn có thể muốn hiển thị postComment cho trustedExample.com, nhưng bạn không muốn hiển thị 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ế của 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 kết quả của công cụ

Có thể sẽ có một số điểm khác biệt giữa các đặc điểm, và bạn có thể muốn điều chỉnh ngân sách cho 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 sẽ tiếp tục nghiên cứu và nỗ lực 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 diễn ra 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 người dùng nhập dữ liệ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.