Yetenek

JSON İşleme ve Path Sorgulamaları

JSON gövdesindeki alanları trafik kararına, güvenlik kuralına, log'a ve veri maskeleme aksiyonuna dönüştürün.

TR7 JSON İşleme ve Path Sorgulamaları, modern API trafiğinde karar verisinin yalnız URL veya header'da olmadığını kabul eder. JSON body içindeki `tenant`, `role`, `operation`, `amount`, `status` veya nested alanlar JSONPath sorgularıyla okunabilir ve trafik kurallarında kullanılabilir. Bu yetenek, FX ifade motoru içindeki JSONQUERY fonksiyonu ile çalışır. Aynı yaklaşım JWT header ve payload alanlarını okumak için JWTHEADER ve JWTPAYLOAD fonksiyonlarıyla genişler. Böylece hem normal JSON gövdesi hem de token içeriği kural koşullarına, log alanlarına ve güvenlik kontrollerine bağlanabilir. JSON alanı yalnız okunmakla kalmaz; response tarafında maskeleme veya replace senaryolarıyla hassas veri kontrolüne de dahil edilebilir. API endpoint'i, body içindeki değere göre farklı kurum servisine yönlendirilebilir, bloklanabilir, loglanabilir veya özel aksiyon tetikleyebilir. Sonuç: TR7, JSON'u yalnız taşınan veri olarak değil, ADC ve WAAP karar motorunun birinci sınıf sinyali olarak kullanır.

3
JSON-aware FX fonksiyonu: JSONQUERY, JWTHEADER, JWTPAYLOAD
12
JSON body'yi kapsayan yetenek: ACL, log, maskeleme, yönlendirme ve daha fazlası
1
Ortak FX dili — ADC trafiği ve WAAP güvenliği

Modern API kararları URL'de değil, çoğu zaman JSON gövdesinin içindedir.

Geleneksel trafik kuralları genellikle host, path, method ve header üzerinden karar verir. Ancak modern API trafiğinde asıl karar değeri çoğu zaman JSON body içindedir. Kullanıcının rolü, tenant kimliği, işlem tipi, tutar bilgisi, ürün kodu veya GraphQL operasyon adı URL'de görünmeyebilir.

Bu durumda operatör iki kötü seçenekle karşılaşır. Ya uygulama koduna ek yönlendirme ve güvenlik mantığı yazılır, ya da ADC yalnız header/path seviyesinde kör kalır. Her iki yaklaşım da modern API güvenliği için yetersizdir.

JWT kullanan servislerde benzer problem token içinde yaşanır. Header'da yalnız Authorization değeri görünür; fakat karar için gereken rol, grup, tenant veya scope bilgisi JWT payload içinde saklıdır. Bu alanlar okunamıyorsa trafik politikası kimlik bağlamını kullanamaz.

Doğru yaklaşım, JSON gövdesi ve JWT içeriğini ifade dilinin doğal parçası haline getirmektir. JSONPath sorguları trafik koşulu, güvenlik kuralı, log zenginleştirme ve veri maskeleme aksiyonlarıyla aynı yerde kullanılmalıdır.

TR7 JSON İşleme ve Path Sorgulamaları bu modeli sunar: JSONQUERY, JWTHEADER ve JWTPAYLOAD fonksiyonlarıyla API içeriğini ADC ve WAAP kararlarına bağlar.

Yaklaşımımız

TR7, JSON içeriğini FX ifade motoru üzerinden okuyarak trafik kuralı, güvenlik kontrolü, log zenginleştirme ve response düzenleme süreçlerine taşır.

JSONQUERY fonksiyonu body içinden alan okur

JSONQUERY, JSONPath ifadesiyle request veya response gövdesindeki belirli alanları hedefler. Bu alanlar trafik koşulu, ACL veya log değeri olarak kullanılabilir.

JWTHEADER ve JWTPAYLOAD token içeriğini görünür yapar

JWT içindeki header ve payload alanları JSONPath mantığıyla okunabilir. Rol, scope, tenant veya kullanıcı bilgisi trafik kararına dahil edilebilir.

JSON alanları kural koşulu olarak kullanılabilir

Body içindeki değerler path veya header kadar doğal bir koşul haline gelir. Örneğin `$.tenant_id`, `$.user.role` veya `$.operationName` değerine göre aksiyon seçilebilir.

JSON response içinde maskeleme ve replace yapılabilir

Hassas JSON alanları response tarafında maskelenebilir veya değiştirilebilir. Böylece veri sızıntısı önleme, yalnız log tarafında değil kullanıcıya dönen body üzerinde de uygulanabilir.

Yetenekler

JSON İşleme ve Path Sorgulamaları, JSON body ve JWT içeriğini TR7'nin kural, güvenlik, log ve maskeleme katmanlarına bağlar.

JSONQUERY fonksiyonu JSONPath ile nested alanları hedefler

JSONQUERY, body içindeki nested JSON alanlarını doğrudan sorgulamak için kullanılır. `$.user.role`, `$.items[0].sku` veya `$.payment.amount` gibi alanlar kural koşulunda değerlendirilebilir. Operatör URL veya header'a yansımayan karar verisini kullanabilir. Bu, API trafiğini gerçek içerik bağlamıyla yönetmeyi sağlar.

JSON alanları ACL koşullarına doğrudan bağlanabilir

TR7, JSON'dan okunan alanı trafik kuralının koşulu olarak kullanabilir. Örneğin `tenant_id` değerine göre farklı kurum servisi havuzuna yönlendirme yapılabilir. `role` değeri uygun değilse istek reddedilebilir. Böylece uygulama kodu değiştirilmeden body-aware trafik politikası kurulur.

JWT payload içeriği erişim kararlarına sinyal sağlar

JWTPAYLOAD fonksiyonu token içindeki claim alanlarını okuyabilir. Kullanıcı rolü, grup, scope, tenant veya uygulama kimliği bu şekilde trafik kararına dahil edilir. Bu, Authorization header'ın yalnız ham token olarak görülmesini engeller. TR7 token içeriğini policy sinyaline dönüştürür.

JWT header sorgulama algoritma ve token metadata kontrolü sağlar

JWTHEADER fonksiyonu token header alanlarını okuyabilir. Algoritma, key id veya token tipi gibi metadata kontrolleri yapılabilir. Bu bilgi güvenlik kuralı, log veya conditional access senaryolarında kullanılabilir. Token sadece geçiş verisi değil, denetlenebilir bir nesne olur.

Header içinde taşınan JSON değerleri parse edilebilir

Bazı uygulamalar JSON benzeri veri yapılarını özel header alanlarında taşır. TR7 bu alanları da ifade motoru içinde parse edilebilir sinyal olarak kullanabilir. Böylece yalnız body değil, header içindeki yapılandırılmış veri de kurallara dahil olur. Legacy entegrasyonlarda bu esneklik önemlidir.

JSON alanlarına göre kurum servisi seçimi yapılabilir

API Gateway senaryolarında body içindeki `operation`, `tenant`, `region` veya `product` değeri yönlendirme sinyali olabilir. TR7 bu alanlara göre farklı kurum servisi havuzlarına trafik aktarabilir. Bu, tek endpoint altında çoklu uygulama veya tenant ayrımı yapılmasını sağlar. Uygulama koduna routing mantığı gömmek gerekmez.

JSON alanları log zenginleştirme için kullanılabilir

Log satırlarına JSON body veya JWT içinden seçilen alanlar eklenebilir. Örneğin kullanıcı email'i, tenant kimliği, işlem tipi veya risk skoru logda ayrı alan olarak görünebilir. Bu, SIEM korelasyonunu güçlendirir. Ham body loglamak yerine yalnız gerekli alanlar alınarak veri minimizasyonu da sağlanabilir.

Response JSON içinde hassas alan maskeleme yapılabilir

TR7, response body üzerinde mask veya replace aksiyonlarıyla JSON içindeki hassas değerleri koruyabilir. Kart numarası, kimlik numarası, hasta ID'si, e-posta veya benzer alanlar regex ya da path temelli hedeflenebilir. Bu, uygulama ekibinden kod değişikliği beklemeden veri sızıntısı riskini azaltır. Hassas veri maskeleme sayfasıyla birlikte katmanlı çalışır.

WAAP positive security kuralları JSON anahtarlarını sınırlar

JSON body içindeki izin verilen veya zorunlu alanlar güvenlik politikasına bağlanabilir. Bilinmeyen alanlar, eksik zorunlu parametreler veya aşırı nested yapılar bloklanabilir. Bu, API schema drift ve injection yüzeyini azaltır. JSON içerik denetimi negative security imzalarının ötesine geçer.

JSON depth ve key count limitleri parser güvenliğini artırır

Çok derin veya çok fazla anahtar içeren JSON payload'lar uygulama ve parser kaynaklarını tüketebilir. TR7, JSON nesting depth ve key count gibi limitleri güvenlik politikası olarak uygulayabilir. Bu, API DoS ve beklenmedik body yapılarının etkisini azaltır. Limitler endpoint hassasiyetine göre ayarlanabilir.

Malformed JSON istekleri kurum servisine ulaşmadan reddedilebilir

JSON parse edilemiyorsa istek güvenilir API body olarak kabul edilmez. TR7 malformed JSON durumunda isteği kurum servisine iletmeden reddedebilir veya loglayabilir. Bu, uygulama katmanında beklenmedik parse hatalarını azaltır. Aynı zamanda saldırı ve hatalı istemci ayrımı için görünürlük sağlar.

FX motoruyla JSON sorguları diğer fonksiyonlarla birleşir

JSONQUERY sonucu string, regex, map, list, IP veya hash fonksiyonlarıyla birlikte kullanılabilir. Örneğin JSON'dan tenant alınır, map tablosunda aranır, sonuç yönlendirme veya blok kararına dönüşür. Bu, JSON sorgusunu tek başına yardımcı fonksiyon değil, politika motorunun parçası yapar. Karmaşık API kararları görsel kural editöründe ifade edilebilir.

Operasyonel derinlik

JSON operasyonları; body buffering, parse hatası, JWT alanları, log minimizasyonu, response düzenleme ve performans sınırlarıyla birlikte işletilir.

01

Body erişim zamanı

JSON sorgusu için body'nin okunabilir hale gelmesi gerekir. Bu nedenle body-aware kurallar, header-only kurallara göre daha fazla işlem gerektirir. Sadece gerçekten ihtiyaç duyulan endpoint'lerde kullanılmalıdır.

02

Parse hatası davranışı

JSON parse edilemiyorsa politika reddetme, loglama veya farklı aksiyon üretebilir. API endpoint'i JSON bekliyorsa malformed payload kurum servisine gönderilmemelidir. Bu davranış endpoint güvenliğini artırır.

03

JWT güven varsayımı

JWT içeriğini okumak ile token doğrulamak aynı şey değildir. JWT claim değerleri trafik kararında kullanılacaksa imza doğrulama ve güven kaynağı politikası ayrıca değerlendirilmelidir. Aksi halde saldırgan sahte claim üretebilir.

04

Log minimizasyonu

Tüm JSON body'yi loglamak yerine yalnız gerekli alanları çıkarmak daha güvenlidir. Tenant, operation veya status gibi alanlar loglanabilir; hassas alanlar maskelenmelidir. Bu yaklaşım SIEM görünürlüğü ile veri korumayı dengeler.

05

Response düzenleme sınırı

Response JSON maskeleme body üzerinde işlem yaptığı için boyut ve içerik tipi önemlidir. Çok büyük response'larda performans ve bellek etkisi planlanmalıdır. Hassas veri koruması için doğru endpoint ve alan hedeflemesi yapılmalıdır.

06

Performans etkisi

JSON parse ve path sorgusu header kontrolüne göre daha maliyetlidir. Aynı request içinde birden fazla JSON sorgusu kullanılacaksa sonuçların yeniden kullanımı önemlidir. Kurallar gereksiz tekrar parse oluşturmayacak şekilde tasarlanmalıdır.

Hangi senaryolarda kullanılır

Tenant ID değerine göre kurum servisi yönlendirme

SaaS API tek endpoint üzerinden çoklu tenant trafiği alabilir. TR7 `$.tenant_id` alanını okuyarak trafiği doğru kurum servisi havuzuna yönlendirebilir.

JWT role claim değerine göre erişim kontrolü

Authorization token içindeki rol veya scope değeri okunabilir. Admin path'lerine yalnız belirli claim değerine sahip kullanıcıların erişmesi sağlanabilir.

Response JSON içinde hassas alan maskeleme

API response içinde dönen kart, kimlik veya kullanıcı verisi maskelenebilir. TR7, uygulama kodu değişmeden hassas alanların dışarı açık görünmesini azaltır.

Malformed JSON payload'ları kurum servisine göndermeme

JSON bekleyen endpoint malformed body aldığında TR7 isteği erken reddedebilir. Bu, uygulama parse hatalarını ve saldırı yüzeyini azaltır.

Log satırlarına operasyon ve tenant bilgisi ekleme

Ham body loglamak yerine yalnız `operationName`, `tenant`, `userId` gibi alanlar çıkarılabilir. SIEM korelasyonu güçlenir, veri minimizasyonu korunur.

Sık sorulanlar

JSONQUERY hangi JSONPath sözdizimini destekler?
JSONQUERY, standart JSONPath sözdizimini destekler. `$.user.role`, `$.items[0].sku` veya `$.payment.amount` gibi nokta notasyonu ve dizi erişimi kullanan ifadeler doğrudan kural koşulunda değerlendirilebilir. Bu alanlar ACL koşulu, yönlendirme kararı veya log değeri olarak kullanılabilir.
JWT içeriği okunurken imza doğrulama otomatik yapılır mı?
Hayır. JWTHEADER ve JWTPAYLOAD fonksiyonları token alanlarını okur; ancak imza doğrulama ayrı bir politika adımıdır. JWT claim değerlerini trafik kararında kullanmadan önce token güven kaynağı ve imza doğrulama politikası ayrıca yapılandırılmalıdır. Aksi halde saldırgan sahte claim üretebilir.
Aynı request içinde birden fazla JSON alanı okunduğunda performans nasıl etkilenir?
FX motoru, aynı request kapsamında okunan JSON sorgu sonuçlarını önbelleğe alır. Bir kural body alanını okuduğunda sonraki kurallar için parse tekrar çalışmaz. Bu nedenle çoklu JSON koşulu kullanan kural zincirleri, her seferinde yeniden parse maliyeti doğurmaz.
JSON maskeleme yalnız response tarafında mı çalışır?
Evet. Mask ve replace aksiyonları response body üzerinde uygulanır. Request tarafındaki JSON alanları kural koşulu veya yönlendirme sinyali olarak kullanılabilir; ancak request body içeriği değiştirilmez. Response tarafında ise hassas alanlar maskelenebilir veya farklı değerle değiştirilebilir.
Malformed JSON durumunda TR7 ne yapar?
Politikaya göre istek reddedilebilir, loglanabilir veya farklı aksiyon üretilebilir. JSON bekleyen endpoint'lerde malformed payload kurum servisine iletilmemelidir. Bu davranış endpoint güvenliğini artırır ve uygulama katmanındaki beklenmedik parse hatalarını azaltır.
Bu yetenek hassas veri maskeleme sayfasıyla nasıl ilişkilidir?
JSON İşleme ve Path Sorgulamaları, response body içindeki belirli JSON alanlarını hedefler. Hassas Veri Maskeleme sayfası ise daha geniş kapsamda regex ve path tabanlı maskeleme politikalarını ele alır. İki yetenek katmanlı kullanıldığında hem endpoint seviyesinde alan hedefleme hem de servis genelinde maskeleme politikası uygulanabilir.

API body içeriğini trafik ve güvenlik kararının parçası yapın

JSONQUERY, JWTHEADER ve JWTPAYLOAD ile JSON body ve JWT alanları kural koşuluna, log alanına ve maskeleme aksiyonuna dönüşür. Kendi servislerinizle canlı bir kurulumda gezdirelim.