Skip to content
Smarter by Design.Simpler for Business

Path Check Fields ​

Path Check Fields, bir sayfa tipinin (WAF kuralının) isteği nasıl denetlediğini gösteren detay panelidir. Page Types listesinde bir kurala tıklandığında panel sağda açılır ve isteği yedi bölüme ayırır: Path, Query, Header, JSON, XML, Form ve RAW. Her sekme, isteğin yalnızca kendi bölümüne ait denetimleri okur ve düzenlemeye açar.

Bu bölünme, WAF'ın pozitif güvenlik tarafını taşır. İmza taraması "bu istekte bilinen bir saldırı deseni var mı?" sorusunu yanıtlarken, alan denetimleri "bu path'e gelen istek bu parametreyi taşıyabilir mi, bu uzunlukta olabilir mi, bu karakterleri içerebilir mi?" sorusunu yanıtlar. Uygulamanın beklediği isteğin şekli sekme sekme tanımlanır; şekilden her sapma isteğin saldırı puanına eklenir ve puan engelleme eşiğine ulaştığında istek Blocking modunda engellenir.

Denetimler nereden gelir?

Alan denetimleri çoğunlukla elle yazılmaz: Analysis & Learning geçmiş trafiği inceleyerek her path için beklenen parametreleri, değer uzunluklarını ve değer kalıplarını çıkarır. Bu panel, öğrenilen şeklin okunduğu ve gerektiğinde elle düzeltildiği yerdir.

Panele Erişim ​

  1. Bir host grubunun Page Types listesi açılır.
  2. Listeden bir kurala tıklanır; kuralın detay paneli sağda açılır. Başka bir kurala geçildiğinde panel o kuralın bilgilerini gösterir, satırın vurgusu kaldırıldığında kapanır. Panelin ayrı bir kapatma butonu yoktur. Bu vurgu, araç çubuğundaki Edit ve Delete işlemlerini etkinleştiren satır onay kutusundan bağımsızdır.

Panel başlığında kuralın path'i (catch-all kuralda Any Paths etiketi), altında host grubunun adı ve path'i panoya kopyalayan kopyalama ikonu yer alır. Başlıktaki Edit ve Delete butonları, araç çubuğundaki Edit ve Delete işlemlerinin aynısını yapar.

Sekme kümesi her kural için aynıdır; kuralın kendi denetimini tanımladığı sekmeler belirgin, tanımlamadıkları soluk gösterilir. Soluk bir sekme boş olmayabilir: içeriği devralınmış olabilir. Panel ilk açılışta Path sekmesiyle gelir; sonraki açılışlarda son bakılan sekme hatırlanır (bu tercih kural bazlı değil, kullanıcı bazlıdır).

Sekme etiketlerinin birebir yazımı

Arayüzde sekmeler Path, Query, Header, JSON, Xml, Form ve Raw olarak yazılır. Bu dokümanda okunurluk için XML ve RAW biçimleri kullanılmaktadır.

Sekmeler ve Denetledikleri Bölüm ​

Sekmeİsteğin denetlenen bölümüDeğişken birimi
Pathİstek satırı: HTTP metodu, path uzunluğu ve derinliği, path içeriğinin imza taraması.Yok (yalnızca ortak kural)
QuerySorgu dizesi (?user=john&lang=en-US).Sorgu parametresi adı
Headerİstek başlıkları.Başlık adı
JSONİçerik türü JSON olan istek gövdesi.JSON anahtar yolu
XMLİçerik türü XML olan istek gövdesi.XML eleman veya attribute yolu
FormForm gövdesi taşıyan istekler ve dosya yüklemeleri.Form alanı adı
RAWGövdenin ham (çözümlenmemiş) hâli: boyutu, içerik türü ve çözümlenemeyen içeriğin akıbeti.Yok (yalnızca ortak kural)

Gövde sekmeleri isteğin içerik türüne göre devreye girer: JSON gövdeli bir istek JSON sekmesinin denetimlerinden, form gövdeli bir istek Form sekmesinin denetimlerinden geçer. Hiçbir çözümleyiciye uymayan veya çözümlenemeyen gövdenin akıbetini ise RAW sekmesi belirler.

İki Katman: Ortak Kural ve Değişken Kuralı ​

Query, Header, JSON, XML ve Form sekmeleri iki katmandan oluşur:

Ortak kural (common rule) Bölümün tamamı

Sekmenin kapsadığı tüm alanlara uygulanan denetimlerdir: alan sayısı, anahtar uzunluğu, izin verilen alanlar ve sekmeye göre zorunlu alanlar, toplam boyut veya iç içe geçme derinliği, gövde biçiminin geçerliliği ve değer üzerindeki genel kısıtlar. Hangi denetimin hangi sekmede bulunduğu sekme sayfalarında ayrıntılanır. Sekmenin üst tablosunda gösterilir.

Değişken kuralı (argument rule) Tek bir alan

Adı verilen tek bir parametreye, başlığa, anahtara veya form alanına özel denetimlerdir: o alanın değer uzunluğu, değerinin uyması gereken kalıp, en fazla kaç kez tekrarlanabileceği, o alan için imza taramasının açık olup olmadığı ve ayrıntılı günlüğe yazılıp yazılmayacağı. Ortak kuralın altındaki değişken tablosunda listelenir.

Path ve RAW sekmelerinde değişken tablosu bulunmaz; bu iki sekme yalnızca ortak kuraldan oluşur.

Değişken kuralı, ortak kuralın değer denetimlerini devralmaz

Bir alan için değişken kuralı tanımlandığında o alanın değer denetimleri tümüyle bu kuraldan alınır; ortak kuralın değer denetimleri o alana artık uygulanmaz. Formdaki ön-dolum yalnızca bir başlangıç kolaylığıdır: kayıttan sonra boş bırakılan bir alan ortak kuraldaki değere geri dönmez, o denetim için kısıt yok anlamına gelir. Alan sayısı ve toplam boyut gibi bölüm geneli denetimler ise değişken kuralından etkilenmez ve uygulanmaya devam eder.

Devralma ve Rule Source ​

Bir kural, bir sekme için kendi denetimini tanımlamak zorunda değildir. Tanımlamamışsa denetimler kural eşleşme önceliğine göre path'e uyan glob kuraldan veya Any Paths kuralından devralınır:

  • Tablonun sonundaki Rule Source satırı, denetimlerin geldiği kuralın path'ini gösterir. Kural kendi denetimini tanımlıyorsa bu satır bulunmaz.
  • Değişken tablosunda kuralın kendi tanımladığı satırlar kalın, devralınanlar italik gösterilir. Devralınan satırlarda düzenleme ve silme butonları bulunmaz; devralınan kural yalnızca kaynağı olan kuraldan düzenlenir.
  • Kural kendi ortak kuralını veya aynı ada sahip kendi değişken kuralını tanımladığı anda devralma o kural için sona erer.

Path sekmesi bu davranışın dışındadır: path denetimleri devralınmaz, her zaman kuralın kendisine aittir. Bunun nedeni, Path sekmesindeki ortak kuralın ayrı bir denetim parçası değil, kuralın kendisi olmasıdır.

Panel devralmayı yalnızca tam yol kurallarında gösterir

Devralınan satırlar ve Rule Source satırı yalnızca exact (tam yol) kuralların panelinde görüntülenir. Bir glob kuralının panelinde devralınan hiçbir satır görünmez; oysa istek çalışma anında yine Any Paths kuralıyla tamamlanır. Glob kuralının gerçekte hangi denetimlerle çalıştığını görmek için Any Paths kuralının aynı sekmesine de bakılmalıdır.

Denetimlerin Ana Anahtarları ​

Sekmelerdeki denetimlerin çoğu, vService genelindeki iki ana anahtara bağlıdır. Checks ekranındaki anahtarlardan biri kapatıldığında ilgili denetimler hiç üretilmez ve bu denetimlerin alanları kural formlarında ve detay panelinde gizlenir. Kurallardaki değerler silinmez; anahtar yeniden açıldığında aynı değerlerle devreye girer.

İki anahtarın kapsamı adlarının çağrıştırdığından farklıdır:

AnahtarKapsadığı denetimler
Structure ChecksAnahtar uzunluğu ve sayısı, toplam boyut, derinlik, gövde biçiminin geçerliliği ve alan değeri üzerindeki bütün denetimler: değer uzunluğu, değer kalıbı, en fazla tekrar.
Argument ChecksYalnızca izin verilen alan listeleri ve zorunlu alan listeleri.

Bu ayrımın pratik sonucu şudur: Argument Checks kapatıldığında değişken kuralları kaybolmaz, yalnızca alan listeleri devre dışı kalır. Buna karşılık Structure Checks kapatıldığında değişken kurallarının bütün değer denetimleri de düşer.

Bazı denetimler bu anahtarlardan tümüyle bağımsızdır ve her zaman üretilir: izin verilen metotlar, gövde tipini toptan engelleyen anahtarlar, MIME türü listeleri ile RAW sekmesindeki çözümlenemeyen gövde ve beklenmeyen hata denetimleri.

Sessizce düşürülen denetimler

Checks ekranındaki iki sayısal sınır, aşıldığında kuralı uyarı vermeden etkisizleştirir: bir kuralın izin verilen alan listesi Max. Allowed Arguments değerini aşarsa o liste bütünüyle düşürülür, OWASP istisnaları Max. OWASP Exclusions değerini aşarsa o alanın imza taraması kapatılır. Değerler kuralda görünmeye devam eder ancak uygulanmaz.

Sekme Sayfaları ​