Skip to content
Smarter by Design.Simpler for Business

Query Parameter ​

Query Parameter Koşulu Nedir? ​

Query Parameter koşulu, HTTP isteğinin URL'sindeki belirli bir query string parametresinin varlığını veya değerini kontrol ederek trafik yönlendirme ve manipülasyon kararları almak için kullanılan bir koşul tipidir.

Query parametreleri, URL'de ? işaretinden sonra gelen anahtar-değer (key-value) çiftleridir.

https://example.com/search?q=test&page=2&sort=desc
Query Parameter · key: q · value: test

Bu koşul, belirli bir parametrenin varlığını veya değerini kontrol etmek için kullanılır.

Query Parameter Koşulunun Önemi ​

Modern web uygulamalarında query parametreleri, arama sorguları, sayfalama, filtreleme ve durum bilgisi taşımak için yaygın olarak kullanılır.

Query Parameter koşulu sayesinde;

  • Belirli parametrelerin varlığı kontrol edilebilir,
  • Parametre değerlerine göre farklı aksiyonlar uygulanabilir,
  • Debug/test parametreleri tespit edilip engellenebilir,
  • API versiyonlama parametreleri yönetilebilir,
  • Önbellek stratejileri parametre bazlı oluşturulabilir.

Path + Query vs Query Parameter Farkı:

KriterYaklaşımÖrnek
Query ParameterParametreye odaklıParametre q = test
Path + QueryTam string eşleştirme/search?q=test

Kullanılabildiği vService Tipleri ​

HTTP
L7 TCP
Network

Koşul, hem istek (At Request) hem yanıt (At Response) aşamasında kullanılabilir; parametre değeri istek anında tespit edilir.

Nasıl Eklenir? ​

Yeni bir Query Parameter Koşulu, TR7 web yönetim arayüzü üzerinden aşağıdaki adımlar izlenerek eklenebilir:

  1. Sol altta bulunan TR7 logosuna tıklanarak Configuration Menu açılır.
  2. Load Balancer → Conditions → Add adımları takip edilir.
  3. Criteria olarak Query Parameter seçilir.
  4. Koşula ait ilgili konfigürasyonlar yapılandırılır.
  5. Add butonuna tıklanarak koşul eklenir.

Query Parameter Koşulu Ekleme Formu ​

Query Parameter Koşulu Ekleme FormuQuery Parameter Koşulu Ekleme Formu

INFO

Condition Name ​

Oluşturulacak koşul için isteğe bağlı bir isim girilebilir.

Bu alan, özellikle aşağıdaki senaryolarda önemlidir:

  • Aynı vService altında çok sayıda koşul tanımlandığında,
  • Benzer kriterlere sahip koşulların ayırt edilmesi gerektiğinde,
  • Koşulun hangi iş kuralını temsil ettiğinin hızlıca anlaşılması istendiğinde.

Bu alan boş bırakıldığında, TR7 ilgili koşulun içeriğini analiz ederek Condition Description alanında otomatik ve açıklayıcı bir isim oluşturur. Oluşturulan bu açıklama, koşul listelerinde isim olarak kullanılır.

INFO

Criteria Zorunlu ​

Koşulun tipini belirleyen alandır; aranabilir açılır listeden Query Parameter seçilir. Bu seçim, formda görüntülenecek alanları belirler. Kriter, koşul kaydedildikten sonra değiştirilemez: farklı bir kritere ihtiyaç duyulursa yeni bir koşul tanımlanır. Listedeki tüm kriterler ve kapsamları için Conditions sayfasındaki kriter kataloğuna bakılabilir.

INFO

Query Parameter Zorunlu ​

Kontrol edilecek query parametresinin adı yani key bu alana girilir.

Örnekler:

URLParametre Adı
/search?q=testq
/users?page=2&limit=10page ve limit
/api?version=v2version

INFO

Content Matching Method Varsayılan: Exact match ​

İçeriğin nasıl eşleştirileceğini belirler. Alan, formda etiketsiz bir açılır liste olarak Criteria'nın hemen altında görünür ve Exact match seçili açılır.

SeçenekAçıklama
Exact matchDeğer birebir eşleşmelidir.
StartDeğer belirtilen metinle başlamalıdır.
EndDeğer belirtilen metinle bitmelidir.
IncludesDeğer belirtilen metni içermelidir.
RegexDeğer düzenli ifadeyle eşleşmelidir.
Is presentYalnızca varlık kontrolü sağlanır. (değer önemli değil)

TIP

Is present seçildiğinde, parametrenin değerinden bağımsız olarak istekte var olup olmadığı kontrol edilir (ör. ?debug=true içeren istekler). Bu seçimde Query ve Case Insensitive alanları gizlenir.

INFO

Case Insensitive Varsayılan: Kapalı ​

Büyük/küçük harf duyarlılığını kontrol eder ve yalnızca Query alanındaki değere uygulanır; parametre adı her zaman büyük/küçük harfe duyarlıdır (Page ile page farklı parametrelerdir).

  • Aktif: example, EXAMPLE, Example aynı kabul edilir
  • Aktif Değil: Tam eşleşme gerekir (varsayılan)

INFO

Query Zorunlu ​

Kontrol edilecek query parametresinin değeri (value) bu alana girilir. Değer, istemciden geldiği ham (kodlanmış) haliyle karşılaştırılır: %20, %3D gibi kodlamalar çözülmez; kodlanmış varyantları da kapsamak için Regex kullanılabilir. Aynı ada sahip birden fazla parametre gönderilirse (?a=1&a=2) koşul tek bir değeri değerlendirir; iki değerle birden eşleşme kurulamaz. Seçilen eşleştirme yöntemine göre:

  • Exact match: Değerin birebir karşılığını kontrol eder.
  • Start: Aranacak metin parçasının başlangıcını kontrol eder.
  • End: Aranacak metin parçasının bitişini kontrol eder.
  • Includes: Aranacak metin parçasının içinde geçme durumunu kontrol eder.
  • Regex: Düzenli ifade deseni (Regex) ile kontrol eder.

Is present seçildiğinde bu alan gizlenir.

INFO

Condition Description ​

Girilen kriter ve değerler doğrultusunda TR7 tarafından otomatik olarak oluşturulur.

Bu açıklama;

  • Koşulun hangi değer için geçerli olduğunu,
  • Hangi kriter üzerinden çalıştığını,
  • Listeleme ekranlarında koşulun hızlıca anlaşılmasını

sağlayacak şekilde sistem tarafından dinamik olarak üretilir.

TIP

Parametrenin değeri, aksiyonlarda İstek parametresi akıllı değişkeniyle, parametre adı verilerek kullanılabilir (ör. bir HTTP başlığının veya log alanının değeri olarak).

INFO

Form Butonları ​

Add ​

Add butonuna tıklanarak koşul ekleme işlemi tamamlanır.

Add & Repeat ​

Add & Repeat butonu ile koşul ekleme işlemi tamamlanır ve farklı konfigürasyonlarla ilgili pencereden çıkılmadan yeni bir koşul daha eklenebilir.

Koşul EklendiKoşul Eklendi

Operasyonel Kullanım Önerileri ​

  • Varlık Kontrolü için Is Present Kullanın. Parametrenin değerinden bağımsız olarak varlığını kontrol etmek için Is Present yöntemini kullanın.
  • URL Encoding'e Dikkat Edin. Query parametreleri URL encode edilmiş olabilir. Özel karakterler için bunu göz önünde bulundurun.
  • Güvenlik Parametrelerini İzleyin. debug, test, admin gibi parametreleri production ortamında engelleyin veya izleyin.

Canlı Ortamlarda Yaygın Kullanım Senaryoları ​

Aşağıdaki örnekler, ilgili koşulun gerçek sistemlerde en sık karşılaşılan kullanım senaryolarında nasıl uygulandığını göstermektedir. Bu senaryolar, canlı ortamlarda yaygın olarak tercih edilen ve sahada edinilmiş deneyimlere dayanan pratikleri temel alır.

Senaryo 1: Debug Parametresi Engelleme ​

Kullanım Amacı: Üretim ortamında debug/test parametrelerini tespit edip engellemek ve güvenlik açıklarını önlemek.

Konfigürasyon: Query parameter → debug · Content Matching Method → Is present

Aksiyon Önerileri:

  • ✅ Block → Debug parametreli istekler 403 Forbidden ile engellenir, production ortamında debug modu devre dışı bırakılır.
  • ✅ Show Content → "Debug mode not allowed in production" uyarı sayfası gösterilir, kullanıcı bilgilendirilir.

Senaryo 2: API Versiyon Yönlendirme ​

Kullanım Amacı: API versiyon parametresine göre Kurum Servisine yönlendirme yapmak ve backward compatibility sağlamak.

Konfigürasyon: Query parameter → api_version · Content Matching Method → Exact match · Case insensitive → işaretli · Query → v2

Aksiyon Önerileri:

  • ✅ Add HTTP Header → X-API-Version: v2 header eklenir, Kurum Servisi versiyona göre yanıt verir.
  • ✅ Set Path → Path'e /v2 prefix eklenir, versiyon bazlı routing yapılır.

Senaryo 3: Sayfalama Güvenliği ve Scraping Önleme ​

Kullanım Amacı: Anormal sayfa numaralarını tespit edip web scraping ve otomatik tarama saldırılarını engellemek.

Konfigürasyon: Query parameter → page · Content Matching Method → Regex · Query → ^[0-9]{4,}$

Aksiyon Önerileri:

  • ✅ Quarantine → 1000 ve üzeri (4+ haneli) sayfa istekleri tespit edilir, 10 deneme sonrası IP 30 dakika karantinaya alınır.
  • ✅ Bandwidth Limitation → Şüpheli sayfalama davranışı gösteren IP'ler için bant genişliği 800 Kbps ile sınırlandırılır.
  • ✅ Manage HTTP Security Headers → X-Scraping-Detected: true header eklenir, Kurum Servisi ek güvenlik önlemleri alır.

Senaryo 4: Admin Parametresi Koruması ​

Kullanım Amacı: Gizli admin/test parametrelerini tespit edip yetkisiz erişim denemelerini engellemek ve izlemek.

Konfigürasyon: Query parameter → admin · Content Matching Method → Is present

Aksiyon Önerileri:

  • ✅ Quarantine → Yetkisiz admin parametresi denemeleri tespit edilir, 3 başarısız deneme sonrası IP 60 dakika engellenir.

Senaryo 5: UTM Kampanya Tracking ​

Kullanım Amacı: Marketing kampanya parametrelerini tespit edip analitik bilgileri Kurum Servisine iletmek ve metrikleri toplamak.

Konfigürasyon: Query parameter → utm_campaign · Content Matching Method → Is present

Aksiyon Önerileri:

  • ✅ Add HTTP Header → X-UTM-Campaign: detected ve X-Marketing-Source: utm header'ları eklenir, Kurum Servisi kampanya verilerini işler.
  • ✅ Set Path + Query → Kampanya parametreleri temizlenmiş path ve query string oluşturulur, clean URL'ler kullanılır.

Senaryo 6: Search Query XSS Koruması ​

Kullanım Amacı: Arama parametrelerinde XSS ve injection pattern'lerini tespit edip saldırıları engellemek.

Konfigürasyon: Query parameter → q · Content Matching Method → Includes · Case insensitive → işaretli · Query → <script

Aksiyon Önerileri:

  • ✅ Block → XSS pattern içeren arama sorguları 400 Bad Request ile engellenir, saldırı durdurulur.
  • ✅ URL Normalization → Zararlı karakterler encode edilir veya temizlenir, güvenli query string oluşturulur.
  • ✅ Quarantine → XSS denemesi yapan IP'ler tespit edilir, 5 deneme sonrası 120 dakika karantinaya alınır.