• Yapay zeka soru ve sorunlarınızı uygun olan kategorilere açıp yanıt alabilirsiniz...

Araç parametreleri çalıştırılmadan önce nasıl doğrulanır?

Garfield

YZF Admin
Yaş
40
Konum
YurtDışı
Katılım
27 Eki 2026
Konular
669
Mesajlar
694
AI Seviyesi
Yeni
Araç parametrelerini çalıştırmadan önce doğrulamak için gelen girdiyi bir şemaya göre kontrol edin; zorunlu alanları, veri türlerini, izin verilen değerleri ve birbiriyle ilişkili koşulları kontrol edin, uygunsuz girdileri aracı çağırmadan reddedin. Yalnız doğrulamadan geçen parametreleri araca gönderin. Böylece eksik, hatalı biçimli veya yetkisiz istekler dış sisteme ulaşmadan durdurulur; ancak doğrulama, aracın gerçekten beklenen işi yapacağını tek başına kanıtlamaz.

Doğrulama hangi sırayla yapılmalı?​


Metni güvenli biçimde ayrıştırın; gerekli normalizasyonu alanın anlamını koruyarak yapın, ardından kullanılacak bu gösterimin şemasını, iş kurallarını ve yetkisini kontrol edin. Şema kontrolü gönderim yetkisini vermez; bütün kontroller geçmeden aracı çalıştırmayın. Örneğin bir e-posta gönderme aracına alıcı, konu ve ileti gövdesi gönderiyorsanız alıcının metin olması yetmez; boş olmaması ve beklenen e-posta biçimine uyması da gerekir.
  1. Gelen parametreyi güvenli biçimde ayrıştırın. Girdi JSON olarak geliyorsa önce geçerli JSON olup olmadığını kontrol edin. Ayrıştırma başarısızsa aracı çağırmadan güvenli bir hata döndürün. Gerekli boşluk veya gösterim normalizasyonunu doğrulama öncesinde, alanın kurallarına göre uygulayın; sözdizimi bozuksa bir alanın mutlaka belirlenebileceğini varsaymayın.
  2. Zorunlu alanları ve veri türlerini doğrulayın. Örneğin to alanı metin, subject alanı boş olmayan metin, body alanı ise metin olmalıdır. Eksik alanları varsayılan değerle doldurmak yerine, iş için zorunluysa isteği reddedin.
  3. Değer sınırlarını kontrol edin. Sayısal bir limit alanı kullanılıyorsa sıfırdan büyük ve makul bir üst sınır içinde olmasını sağlayın. Bir format alanı yalnızca plain veya html kabul ediyorsa listedeki değerler dışındakileri geçirmeyin.
  4. Alanlar arasındaki iş kurallarını uygulayın. send_at verilmişse gelecekte bir tarih olmasını, attachment verilmişse dosya kimliğinin de bulunmasını isteyin. Tek tek alanlar geçerli olsa bile birlikte kullanımları geçersiz olabilir.
  5. Yetki ve kapsam kontrolü yapın. Kullanıcının bu aracı çağırmaya ve istenen kayda erişmeye yetkisi olduğunu doğrulayın. Parametrenin biçimsel olarak doğru olması, kullanıcının o işlem için yetkili olduğunu kanıtlamaz.
  6. Doğrulanan çıktıyı koruyun. Yalnızca kontrollerden geçen alanları araca aktarın. Doğrulamadan sonra değerleri yeniden normalize etmeyin veya modelden yeniden üretmeyin; değişen girdi bütün ilgili kontrollerden yeniden geçmelidir.
  7. Aracı yalnız bütün kontroller başarılıysa çalıştırın. Araç sunucusu yetkiyi gerçek kullanıcı ve hedef kaynak için denetlemeli, yalnız doğrulanan girdiyi yürütmelidir. Şema, iş kuralı veya yetki hatasında yan etki oluşmadan durun; güvenli hata mesajına gizli değerleri eklemeyin.
  8. Çalıştırma sonucunu ayrıca kontrol edin. Araçtan başarılı yanıt gelmesi işlemin iş kuralına uygun tamamlandığını her zaman göstermez. Yanıtta beklenen kayıt kimliği, durum alanı veya işlem sonucu bulunuyor mu kontrol edin.

Şema doğrulaması ile iş kuralı doğrulamasını ayırın​


Şema doğrulaması, verinin yapısını denetler: alan var mı, türü doğru mu, dizi beklenen biçimde mi? İş kuralı doğrulaması ise bu verinin gerçekten yapılabilir ve izin verilen bir işlem oluşturup oluşturmadığını inceler. İkisini tek kontrolde birleştirmemek, hatanın nerede oluştuğunu anlamayı kolaylaştırır.
Kontrol katmanıÖrnekBaşarısızsa
Yapıto alanı metin mi?Aracı çağırmadan isteği reddedin.
DeğerE-posta biçimi geçerli mi?Düzeltilmesi gereken alanı bildirin.
İş kuralıEk dosya varsa dosya kimliği var mı?Aracı çağırmadan isteği reddedin.
YetkiKullanıcının bu kayda erişimi var mı?Yetkisiz işlem olarak sonlandırın.
Şema kullanıyorsanız aşağıdaki örnek, varsayımsal bir e-posta aracı için beklenen temel yapıyı gösterir. Bu, tek başına e-postanın gerçekten gönderileceğini veya kullanıcının gönderme yetkisi olduğunu doğrulamaz.

JSON:
{
  "type": "object",
  "required": ["to", "subject", "body"],
  "properties": {
    "to": { "type": "string", "minLength": 1 },
    "subject": { "type": "string", "minLength": 1 },
    "body": { "type": "string", "minLength": 1 },
    "format": { "enum": ["plain", "html"] }
  },
  "additionalProperties": false
}

Örneğin aşağıdaki girdi yapısal olarak eksiktir:

JSON:
{
  "to": "[email protected]",
  "body": "Rapor hazır."
}

Bu durumda subject zorunlu olduğu için araç çalıştırılmaz. subject eklenip e-posta biçimi, yetki ve varsa gönderim sınırı da geçerliyse araç çağrısına geçilebilir. Buna karşılık to alanı dolu olsa bile geçersiz bir adres veya yetkisiz bir alıcı varsa doğrulama yine başarısız olmalıdır.

Doğrulama hatası nasıl döndürülmeli?​


Hata yanıtı, akışın neden durduğunu ve düzeltilecek alanı açıkça belirtmelidir. Örneğin subject alanı zorunludur veya format yalnızca plain ya da html olabilir gibi bir mesaj uygulanabilir durumdadır. Buna karşılık yalnızca geçersiz istek demek, sorunu düzeltmek için yeterli bilgi vermez.

Doğrulama çıktısında ham gizli değerleri, erişim belirteçlerini ve gereksiz kişisel verileri kaydetmeyin. Tanılama için ayrıntılı günlük tutuluyorsa iş tamamlandıktan sonra geçici çıktıları kaldırın veya maskeleyin. Birden fazla hata varsa mümkünse alan adı, hata türü ve beklenen koşulu ayrı ayrı döndürün; fakat bu hataları düzeltmeden aracı kısmen çalıştırmayın.

Doğrulama neyi kanıtlar, neyi kanıtlamaz?​


Başarılı doğrulama, parametrelerin tanımlanan biçime ve belirlediğiniz iş kurallarına uyduğunu gösterir. Ağ bağlantısının çalıştığını, dış servisin kullanılabilir olduğunu, kaydın hâlâ mevcut olduğunu veya işlemin kesin olarak tamamlandığını göstermez. Bu nedenle araç çağrısından sonra servis yanıtını, durum kodunu ve beklenen sonuç alanlarını da doğrulayın.

Bir parametre doğrulamada başarısız olursa aracı yeniden denemeden önce hatanın türünü ayırın: eksik veya yanlış biçimli veri istemcide düzeltilmelidir; yetki hatası kimlik ve erişim kapsamıyla kontrol edilmelidir; dış servisin reddettiği işlemde ise servis yanıtındaki hata kodu ve ilgili parametre birlikte incelenmelidir.
 

Sen de şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic

Son mesajlar

Son konular

Geri
Üst