Yanıt gövdesindeki küçük bir veri sızıntısı, uygulama kodu değişmeden kapatılamıyorsa operasyon riski büyür.
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.
Yaklaşımımız
TR7, response body düzenlemeyi üç temel modla ele alır: maskeleme, değiştirme ve HTML tag ekleme.
Mask modu hassas değerleri görünmeden önce gizler
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 response içeriğini kontrollü şekilde değiştirir
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.
HTML tag modu sayfaya kontrollü içerik ekler
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.
Koşul ve boyut sınırları güvenli uygulama sağlar
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.
Yetenekler
Yanıt Gövdesi Düzenleme, response body üzerinde güvenlik, uyumluluk ve legacy modernizasyon amaçlı kontrollü değişiklikler yapar.
modifyResponse aksiyonu response body üzerinde merkezi düzenleme 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 hassas alanları karakter bazlı gizleyebilir
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 eski veya riskli metni yeni değerle değiştirir
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 sayfaya banner, script veya meta içerik ekleyebilir
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.
String ve regex matcher seçenekleri farklı içerik tiplerini kapsar
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.
Case sensitivity ve omitted characters ayarları eşleşmeyi hassaslaştırır
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.
Mask offset son dört hane gibi kontrollü görünürlük 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.
Minimum eşleşme eşiği false-positive etkisini azaltı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.
Body size sınırı performans ve güvenlik dengesini korur
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.
JSON, HTML ve düz metin response senaryolarında kullanılabilir
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.
Hassas veri maskeleme ve veri sızıntısı önlemeyle birlikte çalışır
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.
Trafik kuralları motoruyla koşullu body düzenleme kurulabilir
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.
Operasyonel derinlik
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.
Matcher tipi
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.
Body boyutu
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.
Content-type kapsamı
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.
Sıkıştırma davranışı
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 etkisi
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.
Audit görünürlüğü
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.
Hangi senaryolarda kullanılır
API response içinde kart numarasını kısmi maskeleme
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.
Sağlık portalında hasta kimliğini gizleme
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.
Eski domain linklerini yeni domaine değiştirme
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.
HTML sayfasına güvenlik veya bakım banner'ı ekleme
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.
Internal bilgi sızıntısını response çıkışında temizleme
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.
Sık sorulanlar
Mask, replace ve htmlTag modları aynı kuralda birlikte kullanılabilir mi?
Mask offset nasıl çalışır, son dört haneyi açık bırakmak için ne yapılır?
Body size sınırı neden önemlidir ve nasıl ayarlanır?
Regex matcher kullanırken false-positive riskini nasıl azaltabilirim?
Content-Aware Rules sayfasındaki response rewrite ile bu özellik arasındaki fark nedir?
Bu özellik CSP, HSTS veya diğer güvenlik header'larını etkiler mi?
Kurum servisi koduna dokunmadan response içeriğini düzenleyin
Mask, replace ve htmlTag modlarıyla hassas veri gizleme, legacy link düzeltme ve banner ekleme. Kendi servislerinizle canlı bir kurulumda gezdirelim.