---
title: 'İstem Enjeksiyonu'
source: 'https://academia.sh/tr/kurslar/yz-guvenlik-ve-degerlendirme/istem-enjeksiyonu'
course: 'Yapay Zekâ Güvenliği ve Değerlendirme'
language: tr
updated: '2026-08-17T18:06:33+00:00'
license: 'CC BY-SA 4.0'
---

# İstem Enjeksiyonu

Modele giren metnin bir saldırı yüzeyi olarak sayılması: kurgu kayıt kümesinde 240 kaydın 93'ü zararlı, 147'si temiz ve zararlı olma bilgisi metinde değil yapısal bir öznitelik profilinde duruyor. Savunmasız tabanda durdurulan zararlı 0, yanlış alarm 0; kural süzgeci 74 zararlı durduruyor, 23 temiz kaydı yanlışlıkla engelliyor ve 19 zararlı kaçıyor (kesinlik 0,7629, duyarlılık 0,7957, yanlış engelleme payı 0,1565). Doğrudan ile dolaylı biçim kaynak dağılımıyla ayrılıyor: 37 doğrudan zararlıda duyarlılık 0,6486, 56 dolaylı zararlıda 0,8929. İkinci koşumda aynı süzgeç 0,6988 veriyor; kümenin çözünürlüğü duyarlılıkta 0,0108, yanlış engellemede 0,0068.

Bir önceki kursun on bir dersi aracın **kimin elinde** olduğunu ölçtü: tanım karşı tarafa taşındı,
zarfın bedeli sayıldı, güvenilmeyen bir sunucunun bildirdiği tanım tek tek denetlendi. Bütün bunlar
**arayüzün dışındaydı** — sayılan şey mesajın kabuğuydu, içindeki metin değil. Oysa bir dil modeli
için veri ile yönerge arasında yapısal bir sınır yoktur: ikisi de aynı bağlam penceresine aynı
biçimde girer. Kullanıcının yazdığı cümle, erişilen bir belgenin gövdesi ve bir aracın döndürdüğü
değer modelin gözünde aynı türdendir. **İstem enjeksiyonu** bu ayrımsızlığın adıdır: modele giren
metnin, o metni taşıyan yolun yetkisinden fazlasını yaptırabilmesi.

Bu ders yüzeyi anlatmaz, **sayar**. Sorusu şudur: aynı kayıt kümesinde hiçbir savunma yokken kaç
zararlı durdurulur, bir kural süzgeci eklendiğinde kaç zararlı durdurulur ve o süzgeç kaç temiz
kaydı yanlışlıkla engeller. Kursun kuralı ilk satırdan itibaren geçerlidir: **durdurduğu pay ile
yanlışlıkla durdurduğu pay birlikte yazılmayan savunma ölçülmemiş sayılır.**

- **SY1.** Kayıt kümesi, sınıflar, öznitelikler ve savunma katmanları **kurgudur**; gerçek bir
  model uç noktası ya da gerçek bir olay kaydı kullanılmaz. Tohum **20260218**.
- **SY2.** **Bu bir saldırı dersi değildir.** Koşan kodun tamamı savunma tarafındadır:
  sınıflandırma, süzgeç, sayım ve ölçü. Çalışan bir yük, şablon, yönerge dizisi ya da atlatma
  yordamı yazılmaz.
- **SY3.** Kural yapısaldır: **saldırı bir metin değil, bir öznitelik profilidir.** Kayıtların
  metni tümüyle zararsız destek talepleridir ve sınıfla hiçbir ilişkisi yoktur.
- **SY4.** Sınıf adları birer **etikettir**, yordam tarifi değildir. Yeni bir sınıf gerektiğinde
  öznitelik listesine bir bayrak eklenir, metin eklenmez.
- **SY5.** Girdi doğrulama ve tehdit modelleme Güvenli Yazılım Geliştirme kursunda ölçüldü;
  yordamları tekrarlanmaz. Burada yalnız **dil modeline özgü** yüzey eklenir.
- **SY6.** `kesinlik` ve `duyarlılık` Makine Öğrenmesi kursundaki sınıflandırma anlamıyla
  kullanılır. **Yanlış alarm** temiz bir kaydın zararlı sayılmasıdır, **yanlış negatif** zararlı
  bir kaydın kaçmasıdır.
- **SY7.** Kural süzgeci örnekleme içermez, aynı küme üzerinde her koşumda aynı sayıyı verir;
  ikinci koşum kümeyi ikinci tohumla yeniden üretir.
- **SY8.** Duyarlılığın en küçük adımı **1/93**, yanlış engelleme payının adımı **1/147**'dir;
  bu adımlardan küçük hiçbir fark ölçülemez.

## Saldırı Bir Metin Değil, Bir Öznitelik Profilidir

Bir saldırı yüzeyini öğretmenin alışılmış yolu örnek göstermektir. Bu kurs onu yapmaz ve bunu bir
üslup tercihi olarak değil **yapısal bir kısıt** olarak uygular: kayıt kümesinde saldırı metni diye
bir alan yoktur. Kaydın taşıdığı şey yedi **bayraktır** — yönerge kipi, rol değiştirme isteği, gizli
alan adı, yan etkili araç adı, kaynak damgası uyuşmazlığı, olağandışı damga dağılımı, aşırı uzunluk.
Her biri bir kaydın **yapısı** hakkında bir doğru-yanlış değeridir; hiçbiri çalışan bir şey değildir.

Kaydın `metin` alanı da vardır ve orada altı kurgu destek talebinden biri durur. O altı cümle
sıradan abone sorularıdır ve **sınıfla hiçbir ilişkileri yoktur**: hangi cümlenin hangi kayda
düştüğü ayrı bir çekilişle belirlenir. Metin sınıfı belirlemediği için ders bir saldırı metni
göstermek zorunda kalmaz, ve savunmanın ölçüsü metnin içeriğine değil kaydın profiline dayanır.
Gerçek bir kurulumda süzgeç metni okur; burada ölçülen şey **o okumanın çıktısı gibi davranan bir
profildir**.

```python
# KURGUDUR. Kayit kumesi, siniflar, oznitelikler ve savunma katmanlari ders icinde
# tanimlanir; gercek bir model uc noktasi cagrilmaz. Saldiri METNI yazilmaz.
TOHUM, M32 = 20260218, 0xFFFFFFFF


def uretec(t):
    x = ((t ^ (t >> 16)) * 2246822507) & M32
    x = ((x ^ (x >> 13)) * 3266489909) & M32
    s = [(x ^ (x >> 16)) & M32]

    def sonraki():
        s[0] = (s[0] * 1664525 + 1013904223) & M32
        return s[0] / 4294967296
    return sonraki


def ayrik(u, w):
    t = 0.0
    for i, x in enumerate(w):
        t += x
        if u < t:
            return i
    return len(w) - 1


def izno(m):
    h = 2166136261
    for c in str(m):
        h = ((h ^ ord(c)) * 16777619) & M32
    return h


# ---- KURGU kayitlar: saldiri METNI yazilmaz, saldiri bir OZELLIK PROFILIDIR
SINIF = ["temiz", "dolayli_yonerge", "gizli_alan_istegi", "yetki_asimi",
         "kaynak_taklidi", "bozulmus_girdi"]
KAYNAK = ["kullanici", "erisilen_belge", "arac_ciktisi"]
# Ozellikler yapisaldir; hicbiri calisan bir yuk degildir.
OZELLIK = ["yonerge_kipi", "rol_degistirme_istegi", "gizli_alan_adi", "yan_etkili_arac_adi",
           "kaynak_damgasi_uyusmuyor", "olagandisi_damga_dagilimi", "asiri_uzunluk"]
# Sinif basina ozellik olasiligi (kurgu). Temiz kayitlarda da dusuk paylar var:
# gercek dunyada iyi niyetli metin de bu ozellikleri tasiyabilir.
PROFIL = {
    "temiz":              [0.06, 0.02, 0.05, 0.03, 0.02, 0.04, 0.05],
    "dolayli_yonerge":    [0.88, 0.42, 0.10, 0.30, 0.35, 0.08, 0.12],
    "gizli_alan_istegi":  [0.35, 0.15, 0.86, 0.12, 0.10, 0.06, 0.08],
    "yetki_asimi":        [0.30, 0.25, 0.12, 0.84, 0.14, 0.05, 0.07],
    "kaynak_taklidi":     [0.22, 0.55, 0.08, 0.10, 0.82, 0.07, 0.06],
    "bozulmus_girdi":     [0.05, 0.03, 0.04, 0.03, 0.06, 0.80, 0.62],
}
KAYNAK_PAYI = {
    "temiz":             [0.72, 0.20, 0.08],
    "dolayli_yonerge":   [0.05, 0.70, 0.25],
    "gizli_alan_istegi": [0.55, 0.30, 0.15],
    "yetki_asimi":       [0.40, 0.35, 0.25],
    "kaynak_taklidi":    [0.10, 0.60, 0.30],
    "bozulmus_girdi":    [0.65, 0.20, 0.15],
}
# Kurgu, tumuyle zararsiz destek metinleri. Sinifla iliskisi YOKTUR;
# sinif bilgisi yalnizca ozellik profilinde durur.
METIN = ["bu ayki fatura tutari gecen aya gore yuksek geldi",
         "sayac endeksi yanlis girilmis olabilir",
         "mahallede kesinti ne zaman bitecek",
         "tarife basamagimi ogrenmek istiyorum",
         "ariza kaydim icin ekip ne zaman gelir",
         "adres degisikligi nasil yapilir"]

KAYIT = []
for i in range(240):
    r = uretec(TOHUM + 6151 * i)
    s = SINIF[ayrik(r(), [0.62, 0.10, 0.07, 0.07, 0.07, 0.07])]
    kaynak = KAYNAK[ayrik(r(), KAYNAK_PAYI[s])]
    oz = {o: (r() < p) for o, p in zip(OZELLIK, PROFIL[s])}
    KAYIT.append({"no": i + 1, "sinif": s, "kaynak": kaynak, "ozellik": oz,
                  "metin": METIN[int(r() * len(METIN))],
                  "uzunluk": 40 + int(r() * 260)})


def zararli(k):
    return k["sinif"] != "temiz"


# ---- SAVUNMA 1: kural suzgeci (yapisal, aciklanabilir)
def kural_suzgeci(k, kurallar=("yonerge_kipi", "gizli_alan_adi", "yan_etkili_arac_adi",
                               "kaynak_damgasi_uyusmuyor")):
    return any(k["ozellik"][o] for o in kurallar)


# ---- SAVUNMA 2: model temelli suzgec (puan + esik)
AGIRLIK = {"yonerge_kipi": 0.42, "rol_degistirme_istegi": 0.26, "gizli_alan_adi": 0.44,
           "yan_etkili_arac_adi": 0.40, "kaynak_damgasi_uyusmuyor": 0.38,
           "olagandisi_damga_dagilimi": 0.30, "asiri_uzunluk": 0.12}
KAYNAK_EK = {"kullanici": 0.00, "erisilen_belge": 0.18, "arac_ciktisi": 0.12}


def puan(k):
    p = sum(AGIRLIK[o] for o in OZELLIK if k["ozellik"][o]) + KAYNAK_EK[k["kaynak"]]
    r = uretec(TOHUM ^ izno(k["no"]))
    return min(max(p + (r() - 0.5) * 0.20, 0.0), 1.6)


def model_suzgeci(k, esik=0.40):
    return puan(k) >= esik


# ---- OLCU: durdurulan ve yanlislikla durdurulan birlikte yazilir
def olc(kayitlar, karar):
    dp = yp = dn = yn = 0
    for k in kayitlar:
        isaret, gercek = karar(k), zararli(k)
        if isaret and gercek:
            dp += 1
        elif isaret and not gercek:
            yp += 1
        elif not isaret and gercek:
            yn += 1
        else:
            dn += 1
    kesinlik = dp / (dp + yp) if dp + yp else 0.0
    duyarlilik = dp / (dp + yn) if dp + yn else 0.0
    return {"dp": dp, "yp": yp, "yn": yn, "dn": dn,
            "kesinlik": round(kesinlik, 4), "duyarlilik": round(duyarlilik, 4),
            "yanlis_engelleme_payi": round(yp / (yp + dn), 4) if yp + dn else 0.0}
```

## Savunmasız Taban ve Kural Süzgeci

İkinci blok önce kümenin bileşimini basar, sonra iki kurulumu yan yana koyar. Birincisi
**savunmasız tabandır**: hiçbir süzgeç, işaretleme ya da kapı yoktur, dolayısıyla hiçbir kayıt
durdurulmaz. İkincisi dört bayrağa bakan bir **kural süzgecidir**.

```python
from collections import Counter

print("kayit:", len(KAYIT), " zararli:", sum(1 for k in KAYIT if zararli(k)),
      " temiz:", sum(1 for k in KAYIT if not zararli(k)))
print("sinif:", {s: sum(1 for k in KAYIT if k["sinif"] == s) for s in SINIF})
print("kaynak:", {x: sum(1 for k in KAYIT if k["kaynak"] == x) for x in KAYNAK})
print("her metnin gorundugu sinif sayisi:",
      [len({k["sinif"] for k in KAYIT if k["metin"] == t}) for t in METIN])


def savunmasiz(k):
    """Taban: hicbir suzgec, isaretleme ya da kapi yok."""
    return False


print("\nkurulum         durdurulan  yanlis alarm  kacan  kesinlik  duyarlilik  yanlis eng")
for ad, karar in (("savunmasiz", savunmasiz), ("kural suzgeci", kural_suzgeci)):
    m = olc(KAYIT, karar)
    print(f"{ad:<15} {m['dp']:>10} {m['yp']:>13} {m['yn']:>6}"
          f" {m['kesinlik']:>9.4f} {m['duyarlilik']:>11.4f} {m['yanlis_engelleme_payi']:>11.4f}")

dogrudan = [k for k in KAYIT if zararli(k) and k["kaynak"] == "kullanici"]
dolayli = [k for k in KAYIT if zararli(k) and k["kaynak"] != "kullanici"]
print("\nbicim      zararli  kural yakaladi  duyarlilik")
for ad, g in (("dogrudan", dogrudan), ("dolayli", dolayli)):
    y = sum(1 for k in g if kural_suzgeci(k))
    print(f"{ad:<10} {len(g):>7} {y:>15} {y / len(g):>11.4f}")

print("\nsinif basina kaynak dagilimi")
for s in SINIF:
    c = Counter(k["kaynak"] for k in KAYIT if k["sinif"] == s)
    print(f"  {s:<18} " + "  ".join(f"{x}={c.get(x, 0):>3}" for x in KAYNAK))
```

```
kayit: 240  zararli: 93  temiz: 147
sinif: {'temiz': 147, 'dolayli_yonerge': 24, 'gizli_alan_istegi': 17, 'yetki_asimi': 10, 'kaynak_taklidi': 23, 'bozulmus_girdi': 19}
kaynak: {'kullanici': 137, 'erisilen_belge': 72, 'arac_ciktisi': 31}
her metnin gorundugu sinif sayisi: [6, 5, 6, 6, 5, 6]

kurulum         durdurulan  yanlis alarm  kacan  kesinlik  duyarlilik  yanlis eng
savunmasiz               0             0     93    0.0000      0.0000      0.0000
kural suzgeci           74            23     19    0.7629      0.7957      0.1565

bicim      zararli  kural yakaladi  duyarlilik
dogrudan        37              24      0.6486
dolayli         56              50      0.8929

sinif basina kaynak dagilimi
  temiz              kullanici=100  erisilen_belge= 33  arac_ciktisi= 14
  dolayli_yonerge    kullanici=  2  erisilen_belge= 15  arac_ciktisi=  7
  gizli_alan_istegi  kullanici= 13  erisilen_belge=  4  arac_ciktisi=  0
  yetki_asimi        kullanici=  3  erisilen_belge=  2  arac_ciktisi=  5
  kaynak_taklidi     kullanici=  3  erisilen_belge= 16  arac_ciktisi=  4
  bozulmus_girdi     kullanici= 16  erisilen_belge=  2  arac_ciktisi=  1
```

Dördüncü satır tasarım kararını doğrular: altı metnin dördü **altı sınıfın hepsinde**, ikisi beşinde
görünüyor. Metin sınıfı taşımıyor.

Taban satırı kursun ölçü çerçevesini kurar. Savunmasız kurulumda **durdurulan zararlı 0**,
**yanlış alarm 0**, kaçan zararlı **93**. Kesinlik ve duyarlılık sıfırdır. Bu satırın orada durması
gerekir, çünkü savunmasız kurulumun **yanlış alarmı da sıfırdır** ve tek başına yanlış alarm
sayılırsa hiçbir şey yapmamak kusursuz görünür. Bir savunmanın sayısı ancak iki sütun birlikte
okunduğunda anlam kazanır.

Kural süzgeci 93 zararlının **74'ünü** durduruyor: duyarlılık 0,7957. Bedeli iki sütunda birden
yazılı: **23 temiz kayıt** yanlışlıkla engellendi, yani 147 temiz kaydın 0,1565'i. Kesinlik 0,7629
demek, süzgecin işaretlediği her dört kayıttan yaklaşık birinin zararsız olması demektir. Kaçan 19
zararlı da tabloda durur; savunmanın ölçüsü yakaladığı kadar **kaçırdığıdır**.

## Doğrudan ve Dolaylı Biçim

İstem enjeksiyonunun iki biçimi metinle değil **kaynakla** ayrılır. Doğrudan biçimde zararlı içerik
kullanıcının kendi yazdığı istekten gelir. **Dolaylı yönerge** ise kullanıcının yazmadığı bir yerden
gelir: erişilen bir belgenin gövdesinden ya da bir aracın döndürdüğü değerden. Kullanıcı burada
kurbandır, kaynak değil. Ayrımın önemi yetkidedir: dolaylı biçimde metni sisteme sokan yol,
kullanıcının onayladığı bir yoldur ve o yol genellikle daha geniş bir yetkiyle koşar.

Kaynak dağılımı bu ayrımı sayıya çevirir. 93 zararlı kaydın **37'si** kullanıcıdan, **56'sı**
erişilen belge ya da araç çıktısından geliyor — yüzeyin çoğunluğu dolaylı. Sınıf tablosu bunu
sınıflara böler: `dolayli_yonerge` sınıfının 24 kaydından yalnız 2'si kullanıcıdan, `kaynak_taklidi`
sınıfının 23 kaydından 3'ü. Buna karşılık `gizli_alan_istegi` 17 kaydın 13'üyle ve `bozulmus_girdi`
19 kaydın 16'sıyla ağırlıklı olarak doğrudan biçimdir.

Süzgecin iki biçimdeki sayısı aynı değildir: dolaylı biçimde duyarlılık **0,8929**, doğrudan biçimde
**0,6486**. Aradaki fark 0,2443 ve kümenin çözünürlüğünün yirmi katından fazla, yani ölçülebilir bir
farktır. Nedeni kural listesindedir: dört kuraldan biri `kaynak_damgasi_uyusmuyor`, dolaylı
sınıflarda sık, doğrudan sınıflarda seyrek görülen bir bayraktır. Süzgeç **yüzeyin bir yanında
öbüründen belirgin biçimde zayıftır** ve tek bir ortalama duyarlılık bunu gizler: toplam oran, alt
kümelerin farkını yutar.

## Ölçünün Bandı

Kural süzgeci örnekleme içermez; aynı küme üzerinde her koşumda tam olarak aynı beş sayıyı verir.
Bu yüzden ikinci koşum süzgeci değil **kümeyi** değiştirir: aynı tanım, ikinci tohumla yeniden
üretilir.

```python
def kume(tohum):
    """Ayni tanim, baska tohum: kayit kumesi yeniden uretilir."""
    ks = []
    for i in range(240):
        r = uretec(tohum + 6151 * i)
        s = SINIF[ayrik(r(), [0.62, 0.10, 0.07, 0.07, 0.07, 0.07])]
        kaynak = KAYNAK[ayrik(r(), KAYNAK_PAYI[s])]
        oz = {o: (r() < p) for o, p in zip(OZELLIK, PROFIL[s])}
        ks.append({"no": i + 1, "sinif": s, "kaynak": kaynak, "ozellik": oz,
                   "metin": METIN[int(r() * len(METIN))], "uzunluk": 40 + int(r() * 260)})
    return ks


IKINCI = kume(20260219)
print("kosum    zararli  temiz  durdurulan  yanlis alarm  duyarlilik  yanlis eng")
for ad, ks in (("birinci", KAYIT), ("ikinci ", IKINCI)):
    m = olc(ks, kural_suzgeci)
    print(f"{ad}  {sum(1 for k in ks if zararli(k)):>8} {sum(1 for k in ks if not zararli(k)):>6}"
          f" {m['dp']:>11} {m['yp']:>13} {m['duyarlilik']:>11.4f}"
          f" {m['yanlis_engelleme_payi']:>11.4f}")

print("\nikinci kosumda bicim ayrimi")
for ad, kosul in (("dogrudan", lambda k: k["kaynak"] == "kullanici"),
                  ("dolayli ", lambda k: k["kaynak"] != "kullanici")):
    g = [k for k in IKINCI if zararli(k) and kosul(k)]
    y = sum(1 for k in g if kural_suzgeci(k))
    print(f"  {ad}  zararli {len(g):>3}  yakalanan {y:>3}  duyarlilik {y / len(g):.4f}")
print("\ncozunurluk: duyarlilik adimi", round(1 / 93, 4),
      " yanlis engelleme adimi", round(1 / 147, 4))
```

```
kosum    zararli  temiz  durdurulan  yanlis alarm  duyarlilik  yanlis eng
birinci        93    147          74            23      0.7957      0.1565
ikinci         83    157          58            31      0.6988      0.1975

ikinci kosumda bicim ayrimi
  dogrudan  zararli  36  yakalanan  18  duyarlilik 0.5000
  dolayli   zararli  47  yakalanan  40  duyarlilik 0.8511

cozunurluk: duyarlilik adimi 0.0108  yanlis engelleme adimi 0.0068
```

İkinci koşum tek bir sayıya güvenmenin neden yetmediğini gösterir. Aynı süzgeç, aynı kurallar, aynı
üreteç; yalnız kümenin çekilişi değişti ve duyarlılık 0,7957'den **0,6988**'e, yanlış engelleme payı
0,1565'ten **0,1975**'e gitti. Bunun nedeni süzgecin kötüleşmesi değil kümenin bileşiminin
değişmesidir: ikinci kümede zararlı sayısı 93 yerine 83 ve süzgecin zayıf olduğu `bozulmus_girdi`
sınıfı 19 yerine 25 kayıt taşıyor. **Bir savunmanın sayısı, ölçüldüğü kümenin bir özelliğidir.**
Bu yüzden bu kursta her oranın yanına hangi kümede ölçüldüğü yazılır.

Değişmeyen tek şey **biçimler arası sıralamadır**: ikinci koşumda da dolaylı biçim (0,8511) doğrudan
biçimden (0,5000) belirgin biçimde yüksek. Küme değiştiğinde oranlar kaydı, ilişki durdu. Koşumdan
bağımsız olan şey oran değil, iki alt kümenin **birbirine göre yeri**. Son satır bandın alt sınırını
yazar: bu adımlardan küçük hiçbir fark bu kümede bir bulgu değildir.

## Özet

- İstem enjeksiyonu, dil modeli için veri ile yönergenin aynı bağlam penceresinde ayrımsız
  durmasından doğar; kaynak ne olursa olsun metin aynı biçimde girer.
- Saldırı bir metin değil bir **öznitelik profilidir**: kayıtların metni zararsız destek talebidir
  ve altı metnin dördü altı sınıfın hepsinde görünür.
- Savunmasız tabanda durdurulan zararlı 0, yanlış alarm 0, kaçan zararlı 93; yanlış alarmı tek
  başına okumak hiçbir şey yapmamayı kusursuz gösterir.
- Kural süzgeci 93 zararlının 74'ünü durdurur (duyarlılık 0,7957), 23 temiz kaydı engeller (yanlış
  engelleme payı 0,1565) ve kesinliği 0,7629'dur.
- Doğrudan biçimde 37, dolaylı biçimde 56 zararlı vardır; süzgecin duyarlılığı dolaylıda 0,8929,
  doğrudanda 0,6486 ve tek bir ortalama bu farkı gizler.
- Kümenin çözünürlüğü duyarlılıkta 0,0108, yanlış engelleme payında 0,0068'dir; ikinci koşumda
  oranlar kayar, biçimler arası sıralama durur.

## Sonraki Adım

Kural süzgecinin en sert yanı keskinliğidir: bir bayrak ya vardır ya yoktur, ara değer yoktur ve
listeye yazılmamış her yapı sessizce geçer. Karşısındaki yaklaşım bir **puan** üretip bir **eşikle**
karar vermektir, ve o eşik bir ayardır. Sonraki ders bu ayarı süpürür ve güvenlik süzgecinin
atlatılmasını bir yordam olarak değil **bir eşik sorusu** olarak ele alır: eşik yükseldikçe kesinlik
artıp duyarlılık düşerken savunmanın hangi sınıfta önce çöktüğü ve atlatmaya en açık noktanın hangi
eşikte ortaya çıktığı sayılır.
