Merge sırasında ayarlar (metotlar, OWASP) nasıl birleştirilir?
Kısa cevap
Birleşik kural ilk işaretlenen kuralın kopyasıyla başlar; diğer kurallar sırayla üstüne genişletilir ve kural yeni bir kimlik alır (ayarların birleştirilmesi). Allowed Methods: kurallardan biri Any methods ise sonuç Any methods olur, Multiple methods listeleri birleştirilir, None diğer kuralın değerine bırakır. Sayısal kısıtlar (Path Length, Path Depth ve Check Fields'taki uzunluk, sayı, boyut, derinlik): iki tarafın sınırlarını kapsayan aralık alınır, No restriction olan taraf hesaba katılmaz. OWASP ve OWASP Check kurallardan birinde kapalıysa birleşik kuralda da kapalıdır. İzinli listeler (Allowed … ve Allowed … mime types) birleştirilir, Max. Allowed Arguments sınırını aşarsa liste boşaltılır ve kısıt kalkar. Zorunlu listeler (Required …) kesişir. OWASP Exclusions listeleri birleştirilir; birleşim Max. OWASP Exclusions sınırını aşarsa liste boşaltılır ve o yerde imza taraması kapatılır (path'te OWASP, bölümde ya da argümanda OWASP check). Değer desenleri, engelleme anahtarları ve … value count gibi diğer ayarlarda ilk kuralın değeri korunur. Aynı bölüm ve argümana ait Check fields kuralları tek kuralda birleşir, diğerleri eklenir.
Nasıl Çalışır?
- İlk işaretlenen kuralın bütün ayarları ve Check fields kuralları kopyalanır; path olarak Merge Path yazılır ve kural yeni bir kimlik alır.
- Sıradaki her kural bu kopyanın üstüne alan alan işlenir (aşağıdaki tablo).
- Aynı bölüm ve aynı argümana ait Check fields kuralları birleştirilir; kopyada karşılığı olmayan kurallar olduğu gibi eklenir.
Alan Alan Birleşim
| Alan | Birleşim kuralı |
|---|---|
| Allowed methods | Biri Any Methods → Any methods · Multiple Methods ∪ Multiple methods · None diğer kuralın değerine bırakır |
| Path length, Path depth; Check fields'taki … key length, … key count, Total … Size, Raw Body Size, JSON Depth, XML Depth, … value length | Alt sınırların en küçüğü ile üst sınırların en büyüğü; alt ve üst sınır eşitse Equals to. No Restriction olan taraf hesaba katılmaz, iki taraf da No restriction ise sonuç No restriction |
| OWASP (path) · OWASP check (bölüm ve argüman) | Kurallardan birinde kapalıysa kapalı; aksi hâlde biri açıksa açık |
| OWASP exclusions | Listeler birleştirilir; boş liste diğer kuralın istisnalarını silmez. Birleşim Max. OWASP Exclusions sınırını aşarsa o yerde OWASP (path) ya da OWASP check kapatılır ve liste boşaltılır |
| Allowed Query Parameters, Allowed Headers, Allowed Form Fields, Allowed JSON Keys, Allowed XML Keys, Allowed Upload Mime Types, Allowed Raw Body Mime Types | Listeler birleştirilir; ilk kuralın listesi boşsa (kısıt yok) sonuç da kısıtsızdır, sonraki kuralın listesi boşsa ilk kuralın listesi korunur; birleşim Max. Allowed Arguments sınırını aşarsa liste boşaltılır ve kısıt kalkar (Max. Allowed Arguments ne işe yarar; bir sayfanın öğrenilmiş argüman listesi bu sayıyı aşarsa ne olur?) |
| Required Query Parameters, Required Headers, Required Form Fields | Kesişim (yalnızca iki kuralda da bulunanlar) |
| … value pattern (değer desenleri) | İlk kuralın değeri (boş desen de değer sayılır); yalnızca ilk kuralda bu alan hiç kaydedilmemişse sıradaki kuralın deseni alınır |
| Block All … Contents, Block Invalid … Contents, Block Unparsed Contents, Block Unexpected Parser Errors, … value count, Detailed Log ve diğerleri | İlk kuralın değeri |
| Check fields kuralları | Aynı bölüm ve aynı argüman → tek kuralda birleşir; farklı → eklenir |
- Sınır davranışında "boşaltılan" izinli liste kısıt yok anlamına gelir. OWASP exclusions birleşimi sınırı aşarsa liste boşaltılır ve aynı yerde OWASP (path) ya da OWASP check kapatılır, yani o path'te, bölümde ya da argümanda imza taraması kapanır. Bu, öğrenmenin aynı sınırda uyguladığı davranışla aynıdır (Max. OWASP Exclusions).
- Birleşik kural yeni bir kimlik alır; öğrenmeden gelen kuralların kimlikleri taşınmaz.
- Analizdeki Combine with Old Rules seçeneği farklı bir işlemdir (Analizde "Create New Rules" ile "Combine with Old Rules" arasındaki fark nedir?).
Sık Karıştırılan Noktalar
- "Merge en sıkı ayarı seçer." Merge genişletir: metot listeleri, izinli listeler ve OWASP exclusions listeleri birleşir, sayısal aralıklar genişler ve kurallardan birinde kapalı olan OWASP taraması birleşik kuralda da kapalı kalır; zorunlu listeler ise daralır.
- "İzinli listeler her koşulda birleşir." Birleşim Max. Allowed Arguments sınırını aşarsa liste boşaltılır ve o alanda liste kısıtı kalkar.
- "Kısıtsız (No restriction) bir kural birleşimi kısıtsız yapar." No restriction olan taraf hesaba katılmaz; diğer kuralın sınırı birleşik kurala geçer.
Dokümantasyonda nasıl yapılır
