Bir web uygulamasında en düşük maliyetli güvenlik iyileştirmelerinden biri, HTTP yanıt başlıklarını doğru ayarlamaktır. Birkaç satırlık yapılandırma, tarayıcı düzeyinde koca bir saldırı sınıfını zorlaştırır. Ama yanlış ayarlanan aynı başlıklar üretimi de bozabilir. Bu yazıda hangi başlığın ne işe yaradığını ve nasıl kademeli geçileceğini anlatıyoruz.
Strict-Transport-Security (HSTS)
Tarayıcıya "bu siteye yalnızca HTTPS ile bağlan" der. Bir kez uygulandığında, araya girme denemelerinde tarayıcı düz HTTP bağlantısını reddeder.
Dikkat: includeSubDomains ve preload güçlü ama geri dönüşü zordur. Tüm alt alan adlarınızın HTTPS sunduğundan emin olmadan includeSubDomains eklemeyin. Önce kısa bir süre değeriyle başlayıp, her şeyin çalıştığını gördükten sonra süreyi uzatın.
Content-Security-Policy (CSP)
En güçlü ama en dikkat isteyen başlık. Tarayıcıya hangi kaynaklardan script, stil ve görsel yükleyebileceğini söyler. Doğru kurulduğunda, enjekte edilen bir script'in çalışmasını büyük ölçüde engeller.
CSP'yi doğrudan zorlayıcı modda açmak siteyi bozar. Doğru yol şudur:
- Önce yalnızca rapor toplayan modda yayına alın.
- Gerçek trafikte hangi kaynakların engelleneceğini raporlardan görün.
- Politikayı bu gözlemlere göre daraltın.
- Ancak site sorunsuz çalıştığında zorlayıcı moda geçin.
X-Frame-Options ve frame-ancestors
Sitenizin başka bir sayfanın içine gizlice gömülüp kullanıcıya yanlış tıklatılmasını engeller. Modern yaklaşım, aynı korumayı CSP'nin frame-ancestors yönergesiyle sağlamaktır. İkisini birlikte vermek, eski ve yeni tarayıcıları birlikte kapsar.
X-Content-Type-Options
Tek bir değeri vardır ve tarayıcının içerik türünü tahmin etmeye çalışmasını kapatır. Bu tahmin bazı durumlarda zararlı içeriğin yanlış yorumlanmasına yol açabilir. Yan etkisi neredeyse yoktur, güvenle uygulanabilir.
Referrer-Policy ve Permissions-Policy
Referrer-Policy, başka sitelere geçişte ne kadar adres bilgisi sızdığını kontrol eder. Permissions-Policy, kamera ve konum gibi tarayıcı yeteneklerine kimin erişebileceğini kısar. İkisi de gizlilik yüzeyini daraltır ve düşük risklidir.
Kademeli geçiş planı
- Yan etkisi olmayanlarla başlayın:
X-Content-Type-Options,Referrer-Policy. - Çerçeveleme korumasını ekleyin:
X-Frame-Optionsveframe-ancestors. - HSTS'i kısa süreyle açın, doğrulayın, sonra uzatın.
- CSP'yi rapor modunda başlatın, trafikle olgunlaştırın, en son zorlayıcı moda alın.
Ölçün, tahmin etmeyin
Değişiklikten sonra başlıklarınızın gerçekten uygulandığını doğrulayın. Pentest araçları bölümündeki ücretsiz teste alan adınızı girerek başlıklarınızı puanlayabilir, eksikleri tek ekranda görebilirsiniz.