WebMCP aracının güvenliği

Julia Pagnucco
Julia Pagnucco
Alexandra Klepper
Alexandra Klepper

Yayınlanma tarihi: 9 Haziran 2026, Son güncelleme tarihi: 1 Eylül 2026

Açıklayıcı Web Uzantılar Chrome Durumu Amaç
GitHub Kaynak denemesi Kaynak denemesi Görünüm Deneme Yapma Amacı

Tarayıcıda çalışan yapay zeka aracılarına (uzantılarla desteklenen aracılar dahil) yapılandırılmış araçlar oluşturmak ve sunmak için Web Model Bağlam Protokolü'nü (WebMCP) kullanabilirsiniz. Aracı, kullanıcının adına işlemleri yürütmek için büyük dil modeli (LLM), kurallar, bellek ve araçlar kullanır.

LLM'ler tüm metinleri, talimatları ve kullanıcı verilerini tek bir parça dizisi olarak ele aldığından, saldırgan tarafından kötü amaçlı talimatların eklenmesiyle oluşan dolaylı istem enjeksiyonu saldırılarına karşı savunmasızdır. Ekibimiz, web sitenizi ve kullanıcılarınızı kötü niyetli kişilerden korumanıza yardımcı olmak için araç güvenliğiyle ilgili bu belgeyi hazırladı.

Bazı modellerde istem enjeksiyonu saldırılarını ele alan katmanlar olsa da büyük dil modelinde (LLM) güvenliği garanti etmek mümkün değildir. Modeller olasılıksal yapıdadır. En yeni LLM'leri kullanan ajan tabanlı sistemlere karşı tekrarlanabilir istem enjeksiyonu saldırıları olduğunu ve web'deki saldırıların yaygınlığının arttığını unutmamak önemlidir.

Bu endişeleri gidermek için WebMCP ile araç geliştirenler için güvenlik konusunda ön kılavuz bilgiler paylaştık.

Ek açıklama ipuçlarını kullanma

Araçlarınızı oluştururken eklemeniz gereken birkaç ipucu vardır:

  • Uygun olan yerlerde untrustedContentHint kullanın. Bir araç, kullanıcı tarafından oluşturulan içerik (UGC) veya harici kaynaklı veriler döndürüyorsa araca untrustedContentHint eklemeyi düşünün. Bu alan, yükü açıkça güvenilmeyen olarak etiketler. Böylece, bu verilerin daha fazla inceleme gerektirdiğine dair bir sinyal sağlanırken sitenizin bütünlüğünün korunmasına yardımcı olunur.
  • Yüksek riskli veya geri döndürülemez işlemler için consequentialHint'ı kullanın. Bir aracın yürütülmesi, seyahat rezervasyonu yapma veya para transferi gibi önemli işlemlerle sonuçlanıyorsa consequentialHint: true değerini ayarlayarak yürütme işleminden önce aracının veya tarayıcının kullanıcı onayı istemesini sağlayın.
  • Durumu değiştirmeyen araçlarda readOnlyHint simgesini kullanın. Bu sayede aracı, kullanıcı onaylarını ne zaman isteyeceği konusunda daha iyi kararlar verebilir.

Araçlarınızı dikkatli bir şekilde kullanın

WebMCP document.modelContext.registerTool API'si, yalnızca aracın işlevini temsilcilere sunar. Varsayılan olarak, diğer web siteleri veya kaynaklar arası iFrame'ler araçlarınızı gözlemleyemez ya da araçlarınızla etkileşimde bulunamaz.

registerTool bölümündeki exposedTo seçeneğiyle, belirli güvenli kaynaklara aracınıza erişim izni verebilirsiniz. Bu, aracınızın sitenize yerleştirildiğinde ve sitenizin bu kaynağa yerleştirildiğinde bu kaynaklara maruz kalmasına neden olur.

// https://partner.org

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

Yalnızca güvendiğiniz kaynaklara araçlarınızı açın. Bu durum, özellikle araçlar kullanıcı verilerini yönettiğinde veya kullanıcıyı başka bir şekilde etkilediğinde önemlidir.

  • getFavoriteProducts gibi salt okunur bir araç, kullanıcı hakkında bilgi ortaya çıkarabilir. Bu araçları yalnızca aksi takdirde bu verileri doğrudan paylaşacağınız web sitelerine göstermelisiniz.
  • Okuma ve yazma erişimi olan araçlar, kullanıcı adına işlem yapar. Bu araçlar, yalnızca kullanıcınız adına işlem yaparken güvenilebileceğine karar verdiğiniz kaynaklara sunulmalıdır. Örneğin, postComment değerini trustedExample.com için kullanıma sunmak isteyebilirsiniz ancak evilExample.com için kullanıma sunmak istemezsiniz.

Karakter bütçeleri belirleme

Ajan koruma sınırlarına takılmamak için kısa ve öz araç açıklamaları ve çıkışları yazın. Daha iyi sonuçlar için aşağıdaki karakter sınırlarını öneririz:

  • Araç açıklaması başına 500 karakter
  • Parametre açıklaması başına 150 karakter
  • Araç adı ve parametre adı başına 30 karakter
  • Her bir araç çıkışı için 1.500 karakter sınırı

Ajanlar arasında farklılıklar olması muhtemeldir. Bu nedenle, karakter bütçelerinizi kullanıcı geri bildirimlerine göre ayarlayabilirsiniz.

Sonraki adımlar

Ajan tabanlı web için güvenli bir altyapı oluşturma konusunda araştırmalarımıza ve çalışmalarımıza devam ediyoruz. Örneğin, taraflar arasında izin yönetimiyle ilgili devam eden bir tartışma var ve spesifikasyon taslağı, araç yürütülürken kullanıcı girişini eşzamansız olarak istemek için requestUserInteraction() içeriyor.

WebMCP'yi uygulamanıza nasıl entegre etmeyi planlıyorsunuz? Güvenlik veya başka konularda başka endişeleriniz var mı? WebMCP kaynak denemesine kaydolursanız deneyiminiz hakkında bilgi edinmek isteriz:

Bir aracı oluşturuyorsanız WebMCP için aracı güvenliğiyle ilgili dikkat edilmesi gereken noktalar başlıklı makaleyi okumanızı öneririz.