Varsayılan header kuralları nelerdir?
Kısa cevap
Host grubu oluşturulduğunda Any Paths kuralının Header sekmesine sık hedef alınan 21 başlık için hazır değişken kuralı eklenir: accept-encoding, connection, content-encoding, cookie, host, keep-alive, range, transfer-encoding, user-agent, x-forwarded-host, x-scanner, content-length, origin, upgrade, expect, authorization, sec-fetch-site, sec-fetch-mode, sec-fetch-dest, sec-fetch-user ve referer (varsayılan header kuralları). Her biri RFC'lere dayanan değer deseni, uzunluk ve tekrar sınırı taşır; authorization ve referer kurallarında OWASP Check kapalıdır, x-scanner başlığının varlığı tek başına ihlaldir. Kurallar Any paths'ten devralınır. Değiştirilen ya da silinen kurallar Any paths kuralının Header sekmesindeki Suggested Argument Settings butonuyla varsayılan tanımına döndürülür; bu işlem 21 kuralın üzerindeki özelleştirmeleri siler.
Nasıl Çalışır?
Her istekte bu 21 başlıktan biri geldiğinde değeri o başlığın kuralıyla denetlenir; kuralı olmayan başlıklar Any paths kuralının Header ortak kuralıyla denetlenir. Değer denetimleri Structure Checks açıkken ve Blocking ya da Monitor modunda çalışır; her ihlal 24 puandır. OWASP check açık olan başlıkların değeri ayrıca imza taramasından geçer.
| Başlık | Header Value Length | Header Value Pattern | Header Value Count | OWASP check |
|---|---|---|---|---|
accept-encoding | ≤ 128 | Kodlama adları (gzip, br, zstd, x-gzip …) ve q değerleri listesi | 1 | Açık |
connection | ≤ 64 | keep-alive, close, upgrade, http2-settings gibi belirteçlerin listesi | 1 | Açık |
content-encoding | ≤ 24 | Kodlama adları listesi (identity dahil) | 1 | Açık |
cookie | ≥ 3 | - | 1 | Açık |
host | ≥ 1 | Alan adı, IPv4 ya da köşeli parantezli IPv6, isteğe bağlı port | 1 | Açık |
keep-alive | ≤ 20 | timeout= ve max= çiftleri | 1 | Açık |
range | ≤ 128 | bytes= ile başlayan aralık listesi | 10 | Açık |
transfer-encoding | ≤ 20 | chunked, gzip, identity gibi aktarım kodlamaları listesi | 1 | Açık |
user-agent | ≥ 1 | - | 1 | Açık |
x-forwarded-host | Kısıt yok | Virgülle ayrılmış host listesi | 1 | Açık |
x-scanner | Kısıt yok | - | 0 (varlığı ihlal) | Açık |
content-length | ≤ 16 | En çok 15 haneli sayı | 1 | Açık |
origin | ≤ 256 | null ya da boşlukla ayrılmış şema://host[:port] listesi | 1 | Açık |
upgrade | ≤ 16 | websocket, h2c, h2, webrtc, HTTP/x, TLS/x listesi | 1 | Açık |
expect | ≤ 16 | 100-continue | 1 | Açık |
authorization | ≤ 32768 | - | 1 | Kapalı |
sec-fetch-site | ≤ 16 | none, same-origin, same-site, cross-site | 1 | Açık |
sec-fetch-mode | ≤ 16 | navigate, cors, no-cors, same-origin, websocket | 1 | Açık |
sec-fetch-dest | ≤ 32 | Harf ve tire | 1 | Açık |
sec-fetch-user | ≤ 4 | ?1 | 1 | Açık |
referer | ≤ 4096 | RFC 3986 karakterleriyle şema://… biçiminde URL | 1 | Kapalı |
- Desenler,
content-lengthvesec-fetch-userdışında büyük/küçük harf duyarsızdır; 21 kuralın hepsinde Detailed Log açıktır. authorization(JWT ve benzeri belirteçler) ilereferer(tam URL) değerleri imza taramasında false positive üretmeye yatkın olduğundan bu iki kuralda OWASP Check kapalı tutulur;refereriçin bunun yerine sıkı bir URL deseni uygulanır.- Listede olmayan başlıklara Any paths kuralının Header ortak kuralı uygulanır (Header Value Length 0–16384, Header Value Count 1, desen yok).
TR7'de Varsayılan Header Kuralları
- Nerede görülür: Left Monitor Panel → WAF-Protected vServices → vService → WAF Management → N page types → Any paths satırı → Header sekmesi; kurallar değişken tablosunda kalın listelenir. Exact path'li sayfa tiplerinin Header sekmesinde aynı kurallar italik (devralınmış) görünür.
- Öğrenme: Başlık öğrenmesi ve Event Logs'tan öğretme, değişiklikleri Any paths kuralına yazar (Combine With Old Rules ile uygulanan Analysis & Learning hariç); bu 21 kurala OWASP istisnası eklenebilir ya da uzunluk sınırı genişletilebilir. Desen ihlali öğretildiğinde desen daraltılmaz, temizlenir.
- Varsayılan tanımına döndürme (arayüz): Any paths kuralının Header sekmesinde değişken tablosunun üstündeki Suggested Argument Settings butonu tıklanır ve Are you sure? sorusu onaylanır. 21 kural varsayılan tanımıyla yeniden yazılır, eksik olanlar eklenir; diğer değişken kuralları ve Header ortak kuralı değişmez. Buton yalnızca Any paths kuralının Header sekmesinde görünür; işlemin geri alma adımı yoktur.
- Varsayılan tanımına döndürme (WEB-CLI): Tek host grubu için
waf fw-rules add-arg-headers <vService> <grup>(iki alan da adsız yazılır);waf host-groups add-arg-headers target allise WAF açık bütün vService'lerin bütün host gruplarına uygular (add-arg-headers, host-groups add-arg-headers). - Cluster: Değişiklik ayrı bir dağıtım adımı olmadan uygulanır; varsayılan auto-sync ile eş cihaza da gönderilir, Manual Sync Mode açıksa eş cihaza elle gönderilir.
Sık Karıştırılan Noktalar
- "
cookie ≥ 3veuser-agent ≥ 1başlığı zorunlu kılar." Bu kurallar yalnızca başlık geldiğinde değerinin boş ya da çok kısa olmasını engeller; başlığı göndermeyen istek bu kurallardan ihlal almaz. Zorunluluk Required Headers listesiyle sağlanır (Belirli bir header'ın varlığını zorunlu kılabilir miyim?). - "Suggested argument settings yalnızca eksik kuralları tamamlar." Buton 21 kuralı varsayılan tanımıyla yeniden yazar; bu kurallara öğrenilmiş istisnalar ve elle yapılan değişiklikler silinir.
- "Kendi Header ortak kuralı olan sayfa tipinde bu kurallar geçersizdir." Ortak kural devralmayı yalnızca ortak kural için bitirir; 21 başlık kuralı, sayfa tipinde aynı adla kural tanımlanmadıkça devralınmaya devam eder (Kurallarda devralma ve "Rule Source" nasıl çalışır?).
Dokümantasyonda nasıl yapılır
