Bir sayfaya yalnızca belirli HTTP metotlarına izin verebilir miyim (Allowed Methods)?
Kısa cevap
Evet. Kuralın Allowed Methods alanında Multiple methods seçilip izinli metotlar işaretlenir; listede olmayan bir metotla gelen istek Structure Policies kategorisinde Allowed methods ihlali olarak 24 puan alır. Bu puan her OWASP Protection Level'da engelleme eşiğine ulaştığından istek Blocking modunda tek başına engellenir, Monitor modunda engellenmeden kaydedilir; Learning modunda metot denetimi yapılmaz. Any methods (yeni kuralda varsayılan) metot denetimi yapmaz, None her metodu ihlal sayar. Ayar devralınmaz: her exact ve glob kural kendi listesini uygular, Any Paths'in listesi (GET, OPTIONS, HEAD, POST, PUT, PATCH, DELETE) yalnızca kendi kuralı olmayan path'lere uygulanır. Metot denetimi Structure Checks anahtarından bağımsızdır. Aynı ayar WEB-CLI'da waf fw-rules update ile de yapılır.
Sorun: Bir Path Beklenmeyen HTTP Metotlarıyla Çağrılıyor
Yalnızca GET ve POST beklenen bir sayfaya PUT, DELETE ya da TRACE gibi metotlarla gelen istekler uygulamaya ulaşıyor. Path'in kendi kuralında metot kısıtı yoksa (Any Methods) Any paths'in metot listesi de o path'e uygulanmaz; kısıt path'in kendi kuralında tanımlanır.
Çözüm: İki Yöntem
| Durumunuz | Uygun yöntem |
|---|---|
| Arayüzden | Yöntem 1: Kural formu |
| Betik ya da komut satırı; kuralın metot listesi boş (Any methods) | Yöntem 2: WEB-CLI |
| Path için henüz kural yok | Önce kural eklenir → Yeni bir page type'ı elle nasıl eklerim? |
Yöntem 1: Kural Formu Önerilen
- Nasıl çalışır Kuralın Edit formunda Allowed methods listesi belirlenir; listede olmayan metotla gelen istek ihlal üretir.
- Nerede açılır Left Monitor Panel → WAF-Protected vServices → vService → WAF Management → host grubunun mod kartı → N page types → kural → Edit
- Gereksinim vService'te WAF koruması etkin; path için bir kural (yoksa önce eklenir)
- vService tipi WAF koruması etkin HTTP vService
Adım adım yapılandırma
Left Monitor Panel'de WAF-Protected vServices sekmesinde vService'e tıklanır, WAF Management sekmesi açılır ve ilgili host grubunun mod kartı altındaki N page types satırına tıklanır (ekrana erişim).
Listede path'in kuralı işaretlenir.
Araç çubuğundaki Edit tıklanır (düzenleme ekranına erişim). Aynı form satırın sağ tık menüsündeki Edit, detay panelinin başlığındaki Edit ya da Path sekmesindeki Edit Common Rule for Path ile de açılır.
Allowed Methods listesinden Multiple Methods seçilir; yanındaki listeden izinli metotlar işaretlenir (en az bir metot zorunludur; liste dışında metot yazılamaz). Diğer seçenekler: Any Methods metot denetimi yapmaz, None her metodu ihlal sayar.
Formun altındaki Edit tıklanır; değişiklik ayrı bir dağıtım adımı olmadan uygulanır. Cluster kurulumunda varsayılan auto-sync ile değişiklik eş cihaza da otomatik gönderilir; Manual Sync Mode açıksa Synchronize ile elle gönderilir.
Doğrulama
Satıra tıklanıp detay panelinin Path sekmesindeki Allowed methods değerine bakılır (görüntülenen alanlar).
GET, POSTHost grubu Blocking modundayken path'e izinsiz metotla istek gönderilir; ardından Event Logs kaydının Attacks sekmesine bakılır.
Komut: curl -i -X PUT https://www.example.com/sayfa
Engelleme yanıtı (varsayılan 418) · Attack name: Allowed methodsYöntem 2: WEB-CLI
- Nasıl çalışır Kuralın metot listesi
waf fw-rules updateile yazılır. - Nerede açılır WEB-CLI →
waf fw-rules list·waf fw-rules show·waf fw-rules update - Gereksinim WEB-CLI erişimi; kuralın ve host grubunun kimliği
- vService tipi WAF koruması etkin HTTP vService
Adım adım yapılandırma
Host grubunun kuralları listelenir; kuralın kimliği id değeridir (varsayılan host grubunun kimliği defaultHost):
waf fw-rules list poolId <vService> hostGroupId <grup>waf fw-rules show poolId <vService> hostGroupId <grup> <kural>allowedMethods değeri Any Methods (any) ya da None (none) ise metot listesi kullanılmıyordur ve yeni liste indeks 0'dan yazılır. Kuralda zaten bir metot listesi varsa --allowedMethods.input.N o sıradaki metodun yerine geçer ve fazladan kalan metotları silmez. Kural daha önce Multiple Methods ile kaydedilip sonra Any Methods ya da None'a alındıysa eski liste kayıtta kalabilir; dolu ya da daha önce kullanılmış bir liste daraltılacaksa Yöntem 1 kullanılır.
Örnek, boş listeli kurala yalnızca GET ve POST izni verir (izinli HTTP metotları):
waf fw-rules update poolId <vService> hostGroupId <grup> id <kural> --allowedMethods.type multiple --allowedMethods.input.0 GET --allowedMethods.input.1 POSTWEB-CLI yalnızca GET, HEAD, OPTIONS, POST, PUT, PATCH, DELETE, TRACE ve CONNECT metotlarını kabul eder; arayüzdeki liste bunlara ek olarak WebDAV metotlarını da içerir.
Doğrulama
Kural yeniden görüntülenir.
Komut: waf fw-rules show poolId <vService> hostGroupId <grup> <kural>
allowedMethods: multiple · GET, POSTSık Yapılan Hatalar
- None'ı "kısıt yok" sanmak. None her metodu ihlal sayar ve path'e gelen her isteği engeller; kısıt istenmiyorsa Any Methods seçilir.
- Any paths'in listesine güvenmek. Exact ve glob kurallar metot listesini devralmaz; Any methods ile bırakılan kuralda metot kısıtı olmaz (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)?).
- OPTIONS'ı unutmak. Tarayıcıların CORS ön kontrolü OPTIONS ile gelir; listede yoksa bu istekler ihlal üretir.
- Sıkılaştırmayı doğrudan Blocking'de yapmak. Etkisi önce Monitor modunda gözlenir; Learning modunda metot denetimi çalışmadığından sonuç orada görülmez.
- Structure checks'i kapatınca metot denetiminin de kapandığını sanmak. Structure checks uzunluk, sayı, boyut, derinlik ve değer kalıbı denetimlerini ve geçersiz gövde engellerini kapatır; Allowed methods denetimi sürer (Structure Checks ve Argument Checks ana anahtarları ne yapar; kapatırsam ne olur?).
Dokümantasyonda nasıl yapılır
