Smart Variables
Smart Variables Nedir?
Smart Variables, bir alana sabit bir değer yerine, istek işlenirken hesaplanan bir değer yazmayı sağlar. Örneğin bir takip anahtarına belirli bir IP adresi yazmak yerine "isteği yapan istemcinin IP adresi" seçilir; değer her istekte yeniden hesaplanır.
Değişken alana üç yoldan eklenir:
- Metin alanlarında alanın sağındaki
fxbutonu (ipucu Add variable) Add variable penceresini açar ve değişken listeden seçilir. - İçerik düzenleyicilerinde (içerik sayfaları, WAF engelleme sayfası) buton alanın sağında değil, düzenleyicinin araç çubuğundadır ve adı Add TR7 variable'dır. Buton yalnız Visual editor modunda bulunur.
- Anahtar listelerinde buton yoktur: yeni satır listenin ilk değişkeniyle eklenir ve değişken, satırdaki etikete tıklanarak değiştirilir. Aynı değişken bir listeye iki kez eklenmez.
Değişken metni alana elle de yazılır ya da yapıştırılır; geçerli bir değişken metni kısa süre sonra kendiliğinden etikete dönüşür.
Add Variable Penceresi
Pencere, yeni değişken eklenirken Add variable, var olan bir değişken değiştirilirken Edit variable başlığıyla açılır.
| Alan | Ne işe yarar | Nasıl doldurulur |
|---|---|---|
| Variable name | O alanda kullanılabilen değişkenleri listeler | Liste grup adı - değişken adı biçimindedir (ör. Connection info - Client IP address); kutuya yazılarak süzülür |
| Argüman alanı | Yalnız ek bilgi isteyen değişkenlerde belirir | Etiketi seçilen değişkene göre değişir: Header name, Cookie name, Table name, Format gibi |
| Add functions | Değeri olduğu gibi değil, işlenmiş olarak kullanmak için | Açıldığında Function 1 satırı To Base64 fonksiyonuyla gelir; ile eklenen satırlar JSON query ve $.key argümanıyla başlar. Her satır bir öncekinin sonucunu alır. AGS OTP değişkenlerinde bu satır görüntülenmez |
| Summary | Seçimin sonucunu okunur bir cümleyle gösterir | Doldurulmaz, yalnız gösterir; üzerine gelindiğinde uzun biçim ipucunda açılır |
| Submit | Seçimi alana yazar ve pencereyi kapatır | Eksik ya da hatalı argüman varken tıklanamaz |
Listede yalnız o alanda üretilebilen değişkenler bulunur. Aynı alan bir TCP vService'te açıldığında liste kısalır; cevap aşamasında çalışan bir alanda cevaba ait değişkenler de listeye girer.
Seçilen Değişken Alanda Nasıl Görünür
Seçimden sonra alanda ham bir yazı değil, değişkeni gösteren bir etiket belirir:
- Dar alanlarda ve içerik düzenleyicilerde kısa ad görünür:
[↓IP],[↑Code],[↓Country]gibi. Etiketin üzerine gelindiğinde uzun adı ipucunda çıkar. - Önbellek, takip, bant genişliği ve örnekleme anahtarı listelerinde uzun ad görünür:
[Source (client) IP address]gibi; bu listelerde ipucunda kısa ad çıkar. Hash key, Custom format format keys ve manuel log girdilerinde ise kısa ad görünür. - Etikete tıklandığında pencere Edit variable başlığıyla yeniden açılır ve değişken, argümanı ve fonksiyonları değiştirilir. İçerik sayfası düzenleyicisinde pencere bu durumda da Add variable başlığıyla açılır.
İçerik ve metin alanlarında değişken, yazının içine bu etiket olarak yerleşir; metinle değişken aynı alanda karışık kullanılabilir.
Hangi Bölümlerde Karşılaşılır
| Bölüm | Alan | Ne için kullanılır |
|---|---|---|
| vService · Persistence: Hash based | Hash key | İsteğin hangi sunucuya gideceğini belirleyen anahtarı üretmek |
| vService · Session ID format: Custom Format | Custom format format keys | Oturum kimliğini istemciye özgü değerlerden oluşturmak |
| vService · Debug açık | Custom debug log entries tablosunda Entry value | Hata ayıklama loguna istenen alanları yazmak |
| Backend Service · Backend Group, SSL service işaretli | SNI | Kurum Servisine gönderilecek SNI bilgisini istekten üretmek |
| Cache profili · Dynamic caching açık | Key | Önbellek kaydını isteğe göre ayırmak |
| Log profili | Manual Log Line Format · Manual log entries | Log satırına istenen alanları yazmak |
| Aksiyonlar · trafik takibi | Fields to track | Trafiği kaynağına göre saymak ve eşiğe göre aksiyon almak |
| Aksiyonlar · karantina (Tracking key: Manual) | Quarantine keys to track | Karantinaya alınacak kaynağı tanımlamak |
| Aksiyonlar · captcha (Tracking type: Manual) | Quarantine tracking keys | Captcha karantinasında kaynağı tanımlamak |
| Aksiyonlar · yönlendirme, başlık, yol, trafik değişkeni | Redirect location · Header content · New path info · Variable value | Adresi, başlığı ya da değişkeni istekten üretmek |
| Aksiyonlar · bant genişliği (Limit type: Dynamic) | Key | Limitin kim için ayrı ayrı uygulanacağını belirlemek |
| Aksiyonlar · trafik kopyalama (örnekleme açık) | Sampling key | Kopyalanacak isteklerin hangi değere göre seçileceğini belirlemek |
| İçerik sayfaları | Content | Gösterilen sayfaya isteğe ait bilgileri yazmak |
| WAF · engelleme sayfası kaynağı Manual content | Blocking page | Engelleme sayfasına isteğe ait bilgileri yazmak |
| Bot/DDoS · koruma ve karantina kartları | Redirect location · Quarantine tracking keys | Yönlendirme adresini ve karantina kaynağını tanımlamak |
Bunların yanında Dynamic Condition, Dynamic List ve AGS Condition koşullarında, rapor kolonlarında ve AGS alanlarında da aynı pencere kullanılır. Alanların tam listesi Variables sayfasındadır.
Hangi İş İçin Hangi Grup
| Yapılacak iş | Bakılacak grup |
|---|---|
| Kaynağı tanımlamak (takip, karantina, limit, devamlılık anahtarı) | Connection info |
| Yola, metoda ya da adrese göre karar vermek | Request info |
| Başlık ya da çerez değerini okumak | HTTP header info |
| Gövdeden veri çıkarmak | Body info |
| Log satırına süre ve zaman yazmak | Time info |
| Sayaç ve aktarım miktarı yazmak | Stats |
| İstemciyi ülke, tarayıcı ya da bot durumuna göre ayırmak | Client info |
| WAF sonucuna göre içerik üretmek | WAF |
| Sertifika ve şifreleme bilgisi kullanmak | SSL info |
| Belirli süredeki istek ve veri miktarını okumak | Tracking info |
| Birden fazla değeri birleştirip tek anahtar yapmak | Create variable |
| Kimliği doğrulanmış kullanıcıya göre işlem yapmak | AGS variables |
| Cevabın durum kodunu kullanmak | Cevap Satırı (etiketsiz grup) |
| Cevabın nereden geldiğini log satırına yazmak | Response source |
| Önbellek, sıkıştırma, rastgele sayı ve manuel değişkenler | Others |
Grupların tamamı ve içindeki değişkenler Variables sayfasındadır.
Fonksiyonlar
Değer olduğu gibi yetmiyorsa Add functions satırı açılır ve değer işlenerek kullanılır: küçük harfe çevirme, özet (hash) alma, JSON ya da XML içinden alan çıkarma, IP adresini bloğa daraltma, bir listeyle karşılaştırma gibi. Fonksiyonlar arka arkaya eklenir ve eklendikleri sırayla uygulanır.
Fonksiyonların tamamı Converters sayfasındadır.
