Kurum servisleri her zaman ideal response üretmez. Legacy uygulamalar kimlik numarası, kart numarası, e-posta, internal host adı, eski link veya gereksiz teknik bilgi döndürebilir. Bu alanlar header'da değil, doğrudan response body içinde bulunduğu için klasik header kuralıyla düzeltilemez.
Bu problemi uygulama kodunda çözmek çoğu zaman yavaştır. Servis sahibi farklı ekip olabilir, release takvimi aylar sonrasına kalabilir veya kaynak kod eski teknoloji nedeniyle kolay değiştirilemeyebilir. Buna rağmen güvenlik ve uyumluluk ekibi sızıntıyı hemen kapatmak ister.
Diğer taraftan response gövdesine müdahale dikkatli yapılmazsa yeni risk üretir. Yanlış regex tüm sayfayı bozabilir, HTML injection hatalı yere eklenebilir, çok büyük response üzerinde işlem performansı etkileyebilir. Bu yüzden body düzenleme kuralı kontrollü parametrelerle ve belirli kapsamda uygulanmalıdır.
Doğru yaklaşım, response body üzerinde mask, replace ve html tag işlemlerini merkezi trafik kuralı olarak yönetmektir. Kural hangi path, content-type veya koşul altında çalışacağını bilmeli; eşleşme davranışı ve body size sınırı açıkça tanımlanmalıdır.
TR7 Yanıt Gövdesi Düzenleme, kurum servisi kodunu değiştirmeden response içeriğini maskeler, değiştirir veya HTML ekler; veri sızıntısı ve legacy düzeltme ihtiyaçlarını ADC/WAAP katmanında çözer.
TR7, response body düzenlemeyi üç temel modla ele alır: maskeleme, değiştirme ve HTML tag ekleme.
Mask modu, string veya regex ile yakalanan değerin belirli bölümünü mask karakteriyle değiştirir. Offset ve minimum eşleşme ayarlarıyla false-positive riski azaltılabilir.
Replace modu belirli metin veya regex eşleşmesini yeni değerle değiştirir. Legacy link düzeltme, internal host gizleme veya küçük response normalizasyonları için kullanılabilir.
htmlTag modu response içine script, banner, meta tag veya benzer HTML parçaları eklemek için kullanılabilir. Bu işlem uygulama template'ine dokunmadan yapılır.
Body düzenleme kuralları belirli vService, path, content-type veya trafik koşullarına bağlanabilir. Varsayılan body sınırı düşük tutulur, ihtiyaç halinde kontrollü şekilde artırılabilir.
Yanıt Gövdesi Düzenleme, response body üzerinde güvenlik, uyumluluk ve legacy modernizasyon amaçlı kontrollü değişiklikler yapar.
TR7, response gövdesi üzerinde çalışan modifyResponse aksiyonuyla içerik değişikliklerini merkezi kural haline getirir. Kural response aşamasında çalışır ve kurum servisinden gelen body istemciye gitmeden önce işlenir. Bu yapı uygulama koduna, template'e veya kurum servisi release sürecine bağlı kalmadan hızlı düzeltme sağlar. Özellikle legacy uygulamalarda kritik güvenlik açığını kapatmak için değerlidir.
Mask modu yakalanan değeri seçilen mask karakteriyle değiştirir. Mask karakteri tek karakter olarak tanımlanabilir ve varsayılan olarak `*` kullanılabilir. Offset ayarıyla baştan veya sondan belirli karakterler açık bırakılabilir. Kart numarası, kimlik numarası, hasta ID'si veya e-posta gibi alanlarda kısmi görünürlük sağlanırken hassas veri korunur.
Replace modu belirli string veya regex eşleşmesini yeni bir değerle değiştirmek için kullanılır. Internal host adı, eski domain, yanlış link, deprecated endpoint veya teknik bilgi response içinde düzeltilmek istenebilir. Bu işlem kurum servisinin çıktısını son noktada normalize eder. Uygulama kodu değişmeden kullanıcıya doğru ve güvenli içerik sunulur.
htmlTag modu HTML response içine belirli tag veya içerik eklemek için kullanılabilir. Bakım bildirimi, güvenlik banner'ı, uyumluluk metni veya küçük istemci tarafı düzeltmeler için değerlidir. Bu yaklaşım uygulama template'ini değiştirmeden response seviyesinde içerik ekler. Kural belirli path veya host koşuluna bağlanarak kontrollü uygulanabilir.
Basit metin eşleşmesi için string matcher kullanılabilir. Daha karmaşık kalıplar için regex matcher seçilebilir. Regex, kimlik numarası, kart formatı, e-posta veya özel kurum paternleri gibi değişken değerleri yakalamaya yardımcı olur. Operatör ihtiyaca göre hızlı literal eşleşme veya esnek pattern tabanlı eşleşme kurabilir.
Bazı response içeriklerinde büyük/küçük harf duyarlılığı kritik olabilir. TR7, matcher davranışını case sensitivity ayarıyla kontrol edebilir. Omitted characters gibi seçeneklerle maskeleme sırasında korunacak karakterler belirlenebilir. Bu, telefon, IBAN, kart veya özel formatlı değerlerde daha okunabilir maskeleme sağlar.
Tam maskeleme her zaman istenmez. Denetim veya kullanıcı deneyimi için son dört hane, baştaki birkaç karakter veya belirli format bölümleri açık bırakılabilir. Mask offset bu davranışı kural parametresine dönüştürür. Böylece uygulama kodu olmadan kısmi maskeleme standardı uygulanır.
Bazı pattern'ler tek seferlik tesadüfi eşleşmeler üretebilir. Minimum eşleşme mantığıyla kural ancak belirli sayıda eşleşme olduğunda uygulanabilir. Bu, aşırı agresif maskelemenin sayfayı bozmasını önlemeye yardımcı olur. Hassas veri paternleri daha güvenli şekilde uygulanır.
Response body üzerinde işlem yapmak header kuralından daha maliyetlidir. TR7 varsayılan olarak sınırlı body boyutuyla çalışır; ihtiyaç halinde bu değer artırılabilir. Çok büyük response'larda performans ve bellek etkisi dikkate alınmalıdır. Operatör yalnız gerekli servislerde ve gerekli content-type'larda body düzenleme kuralı çalıştırmalıdır.
Body düzenleme JSON API response, HTML sayfa veya düz metin çıktı üzerinde uygulanabilir. JSON'da hassas alan maskeleme, HTML'de banner ekleme, düz metinde internal bilgi gizleme yapılabilir. Kural content-type ve path koşuluyla sınırlandırılabilir. Bu esneklik farklı uygulama tiplerini aynı aksiyonla yönetmeyi sağlar.
Yanıt gövdesi düzenleme, hassas veri maskeleme yaklaşımının response tarafındaki uygulama mekanizmalarından biridir. Log IP maskeleme, cookie şifreleme ve response body maskeleme birlikte kullanıldığında daha geniş veri sızıntısı kontrolü sağlanır. Kurum servisi fazla veri döndürse bile TR7 son çıkış noktasında önlem alabilir. Bu, uyumluluk ekipleri için güçlü bir güvenlik katmanıdır.
Body düzenleme kuralı her response için çalışmak zorunda değildir. Host, path, status code, content-type, kullanıcı, kaynak IP veya farklı FX koşullarına göre tetiklenebilir. Bu, yalnız hassas endpoint'lerde veya belirli kullanıcı gruplarında düzenleme yapılmasını sağlar. Gereksiz performans maliyeti ve yanlış değiştirme riski azaltılır.
Yanıt gövdesi düzenleme; matcher tipi, body boyutu, content-type kapsamı, sıkıştırma, streaming davranışı ve audit görünürlüğüyle birlikte tasarlanmalıdır.
String matcher hızlı ve deterministik eşleşmeler için uygundur. Regex matcher daha esnektir fakat yanlış yazılırsa fazla geniş eşleşebilir. Kritik kurallarda test ve dar kapsamlı koşul önerilir.
Varsayılan body sınırı küçük tutulur; ihtiyaç halinde artırılabilir. Büyük response üzerinde işlem bellek ve gecikme etkisi oluşturabilir. Yüzlerce MB seviyesine çıkarılacaksa endpoint kapsamı dikkatle sınırlandırılmalıdır.
Kural yalnız JSON, HTML veya text response'larda çalışacak şekilde sınırlandırılmalıdır. Binary dosya, arşiv veya medya response'larında body düzenleme uygulanmamalıdır. Content-type filtresi güvenli çalışma için önemlidir.
Response sıkıştırılmışsa body düzenleme için içeriğin işlenebilir halde olması gerekir. Sıkıştırma ve düzenleme sırası doğru planlanmalıdır. Aksi halde matcher beklenen metni göremez.
Streaming response'larda body düzenleme daha dikkatli ele alınmalıdır. Parçalı gelen içerikte eşleşmenin sınırları ve buffer davranışı önemlidir. Büyük veya sürekli akışlarda kural kapsamı dar tutulmalıdır.
Hangi kuralın hangi response üzerinde çalıştığı loglanabilir. Hassas veri değerinin kendisini loglamak yerine kural adı, endpoint ve eşleşme sayısı gibi metadata tutulmalıdır. Bu, uyumluluk ve güvenlik incelemesi için daha güvenli bir kayıt üretir.
Finans uygulaması response içinde kart numarası döndürüyor olabilir. TR7 son dört hane hariç kalan kısmı maskeleyerek veri sızıntısı riskini azaltır.
Legacy sağlık uygulaması response içinde hasta ID veya kimlik bilgisi döndürebilir. TR7 regex tabanlı maskeleme ile bu alanları kullanıcıya ulaşmadan gizler.
HTML response içinde eski domain veya internal host adı geçiyor olabilir. Replace modu bu linkleri yeni public domain ile değiştirerek migration sürecini kolaylaştırır.
Uygulama template'i değiştirilemediğinde TR7 htmlTag modu ile sayfaya banner veya bilgilendirme parçası ekleyebilir. Bu, geçici bakım ve uyumluluk duyuruları için pratik çözüm sağlar.
Kurum servisi response içinde internal IP, hostname veya teknik sürüm bilgisi döndürebilir. TR7 replace veya mask kuralıyla bu bilgiyi istemciye ulaşmadan temizler.
Mask, replace ve htmlTag modlarıyla hassas veri gizleme, legacy link düzeltme ve banner ekleme. Kendi servislerinizle canlı bir kurulumda gezdirelim.