Kurallarda devralma ve "Rule Source" nasıl çalışır?
Kısa cevap
Bir kural her sekme için kendi denetimini tanımlamak zorunda değildir. Exact path kuralı bir bölümün ortak kuralını ya da bir adın değişken kuralını tanımlamamışsa, bu parça path'e uyan glob kuraldan, o da yoksa Any Paths kuralından alınır (exact → glob → Any paths). Check Fields panelinde devralınan ortak kuralın altında Rule Source satırı kaynağın path'ini gösterir; değişken tablosunda kuralın kendi satırları kalın, devralınanlar italik görünür ve devralınan satırlar yalnızca kaynak kuraldan düzenlenir. Kural kendi ortak kuralını ya da aynı adla kendi değişken kuralını tanımladığında o parça için devralma biter. Path denetimleri hiç devralınmaz; panel devralmayı yalnızca exact kurallarda gösterir.
Nasıl Çalışır?
Exact bir kurala eşleşen istekte her bölüm (Query, Header, JSON, Xml, Form, Raw) için denetimler şu sırayla aranır ve ilk bulunan kullanılır:
- Kuralın kendi parçası.
- Path'e uyan glob kuralın parçası; birden fazla glob uyuyorsa o parçayı tanımlayan, önce tanımlanmış glob kural; sonrakiler yalnızca tanımlanmamış parçaları tamamlar (çalışma anı kural eşleşmesi).
- Any Paths kuralının parçası.
| Durum | Sonuç |
|---|---|
| Kuralda bölümün ortak kuralı yok | Uyan glob kuralın, o da yoksa Any paths kuralının ortak kuralı kullanılır |
| Kuralda bir adın değişken kuralı yok | Uyan glob kuralın, o da yoksa Any paths kuralının aynı adlı değişken kuralı kullanılır; hiçbirinde yoksa ad, geçerli ortak kuralın değer denetimleriyle denetlenir |
| Kural kendi ortak kuralını tanımladı | O bölümün ortak kuralı artık devralınmaz; başka kuraldaki değişken kuralları adlarına göre devralınmaya devam eder |
| Kural bir ada değişken kuralı tanımladı | O ad için ortak kuralın değer denetimleri uygulanmaz; değişken kuralında boş bırakılan alan o denetim için kısıt yok demektir |
| Path (Allowed methods, Path length, Path depth, OWASP check) | Devralınmaz; her zaman kuralın kendi değeri geçerlidir |
Panelde Nerede Görülür?
Left Monitor Panel → WAF-Protected vServices → vService → WAF Management → host grubunun N page types satırı → listedeki exact kurala tıklanır ve detay panelinde sekme seçilir (panele erişim):
- Ortak kural: Değerler devralınmışsa tablonun altında Rule Source satırı ve kaynak kuralın path'i (Any paths kuralı için Any paths) görünür; kural kendi ortak kuralını tanımlıyorsa bu satır yoktur. Devralınan ortak kuralda düzenleme butonu yerine Add Common Rule for … görünür; bununla kurala kendi ortak kuralı eklenir.
- Değişken tablosu: Kuralın kendi satırları kalın, devralınanlar italiktir. Satıra tıklandığında detayı açılır; devralınan satırın detayında Rule Source satırı bulunur, Edit ve Delete butonları bulunmaz.
- Ön dolum: Add Common Rule for … ve Add Argument Rule for … formları Any paths kuralının o bölümdeki ortak değerleriyle dolu açılır; kayıttan sonra değerler bağımsızdır, Any paths kuralı sonradan değişse de bu kural değişmez.
- Glob kurallar: Glob kuralın panelinde devralınan satır gösterilmez. Glob kurala eşleşen isteklerde hangi bölümün hangi değerlerle denetleneceğinin panelden okunabilmesi için gereken bölümler glob kuralın kendisinde tanımlanır.
Path eşleşme önceliği: Bir istek birden fazla page type'a uyarsa kurallar nasıl uygulanır (exact path önceliği, glob kurallarının Any Paths ile birleşmesi)?
Sık Karıştırılan Noktalar
- "Değişken kuralında boş bırakılan alan ortak kuraldan gelir." Değişken kuralı tanımlanınca o ad için ortak kuralın değer denetimleri uygulanmaz; boş alan o denetim için kısıt yok demektir.
- "Kendi ortak kuralını tanımlayan kural Any paths'ten hiçbir şey almaz." Yalnızca o bölümün ortak kuralı devralınmaz; Any paths'teki adlara özel değişken kuralları (ör. varsayılan header kuralları) kuralda aynı ad tanımlanmadıkça devralınmaya devam eder (Varsayılan header kuralları nelerdir?).
- "Any paths'te yapılan değişiklik, ondan ön dolumla oluşturulan kurallara da yansır." Ön dolum yalnızca formun ilk değerleridir; kaydedilen ortak ya da değişken kuralı Any paths'e bağlı kalmaz.
Dokümantasyonda nasıl yapılır
