İçeriği dönüştüren bir proxy, tarayıcıya giden yolda yanıtı değiştirebilir: bir görseli yeniden sıkıştırabilir, işaretlemeyi yeniden yazabilir veya destekleyici JavaScript ekleyebilir. Bir ağda çalışan ve başka bir ağda tanıdık olmayan işaretleme alan sayfa, tam da bu aracı davranışıyla karşılaşıyor olabilir.

İşlettiğiniz bir site için HTTP açık bir yanıt direktifi sunar:

Cache-Control: no-transform

RFC 9111, bu yanıt direktifini alan bir aracının önbellek uygulayıp uygulamadığına bakılmaksızın içeriği dönüştürülmemiş bırakmasını şart koşar. Bu, yalnızca bir nesnenin depolanıp depolanmadığıyla değil, görsel yeniden sıkıştırma ve işaretleme enjeksiyonuyla da ilgilidir.

Mevcut önbellek politikasıyla birlikte tutun

Bir yanıtın zaten önbellek direktifleri varsa, politikanın geri kalanını atmayıp gereksinimi bilinçli olarak ekleyin. Örneğin, herkese açık önbelleklenebilir bir varlık şöyle olabilir:

Cache-Control: public, max-age=3600, no-transform

Bu örnek, bir saatlik tazelik politikasını korurken içerik dönüşümünü yasaklar. no-transform, no-store anlamına gelmez ve olağan aktarım işlemeyi devre dışı bırakmaz. Özgün içeriği önemli olan yanıtlarda, uygun olduğunda ayrı görsel yanıtları da dahil olmak üzere bunu ayarlayın.

Direktif, aracının uyumuyla çalışır. Bir ağ cihazının talimatı yok saymasını kriptografik olarak engellemez.

Taşımayı da koruyun

HTTPS, tarayıcıya kendi TLS eşine doğru kimlik doğrulama ve bütünlük koruması olan bir bağlantı verir. Şifrelenmiş trafiği geçiren sıradan bir operatör proxy'si, o korunan bağlantıya sessizce betik ekleyemez. Sertifika doğrulamasını açık tutun; TLS'yi sonlandıran yerel olarak güvenilen bir inceleme proxy'si farklı bir düzenlemedir.

Sayfayı ve bağımlı kaynaklarını HTTPS üzerinden sunun. HTTP ziyaretçilerini HTTPS'ye yönlendirin ve bunu tutarlı şekilde destekleyebilen bir dağıtım için HSTS'yi düşünün. Yalnızca yönlendirme, HTTP URL'si kullanmış bir ziyaretçi için korumasız bir HTTP alışverişiyle başlar; daha önce öğrenilmiş veya önceden yüklenmiş bir HSTS politikası bu ilk seçimi değiştirir.

Enjekte edilen bir betiği engellemek görünür etkilerini azaltabilir, ancak yanıt zaten değiştirilmiş HTML veya yeniden yazılmış görsel URL'leri içerebilir. Tek bir eski işlev adını değiştirmek, olağandışı bir yorum eklemek veya tarihsel bir enjeksiyon adresini eşlemek, bir sonraki aracı için içerik bütünlüğü sağlamaz.

Bir raporu incelerken, alınan yanıtı kaynağın amaçlanan içeriğiyle karşılaştırın ve TLS'nin nerede sonlandığını belirleyin. Bu kanıt, her tanıdık olmayan betiği sitenin kendi uygulama kodundaki bir hata olarak görmekten daha yararlıdır.

İlgili makaleler