Uygulamayı dağıttınız. Sayfalar yükleniyor, formlar çalışıyor ve hiçbir şey bozuk görünmüyor. Daha sonra bir tarama çalıştırırsınız ve tarama, aşağıdakilerle ilgili bulguların bir listesiyle birlikte gelir: başlıklar - ve bunların hiçbiri açık değil.
Bu normal bir ilk tepkidir. Başlıklar ekranda görünmüyor, bu nedenle bunların önemli olup olmadığını veya tarayıcının sadece titizlik gösterip göstermediğini söylemek zor. Bu kılavuz, en sık göreceğiniz başlıkları, her birinin gerçekte ne yaptığını, sade bir dille ve tahmine gerek kalmadan başlıklarınızı nasıl kontrol edebileceğinizi açıklamaktadır.
Siteniz iyi görünse bile başlıklar neden önemlidir?
Güvenlik başlıkları, sunucunuzun sayfanın yanında tarayıcıya gönderdiği talimatlardır. Tarayıcı bunları okur ve içeriğinizi nasıl işleyeceğini ayarlar: hangi komut dosyaları çalışabilir, sayfa düz HTTP üzerinden yüklenebilir mi, başka bir site onu bir çerçeveye yerleştirebilir mi?
Sayfada değişen hiçbir şey yok. Bu bulguların soyut görünmesinin nedeni tam olarak budur; site, bir şeylerin ters gittiği gün önemli olacak bir dizi korumayı kaçırırken mükemmel görünebilir ve davranabilir.
Dürüst çerçeve şudur: Başlıklar belirli bir risk sınıfını azaltır. Kendi başlarına bir siteyi güvenli hale getirmezler ve temiz bir başlık kontrolü, bir sitenin tamamen güvenli olduğunu kanıtlamaz. Bunları birkaç katman arasında bir katman ve doğru şekilde kullanılması en ucuz katmanlardan biri olarak düşünün.
Aslında bir güvenlik başlığı nedir?
Bir tarayıcı bir sayfa istediğinde sunucunuz sayfayla yanıt verir ve yanıt başlıkları adı verilen bir meta veri bloğu. Bunları kendiniz görebilirsiniz: Tarayıcınızın geliştirici araçlarını açın, Ağ sekmesine gidin, sayfayı yeniden yükleyin ve üstteki isteğe tıklayın. Başlıklar ortada.
Güvenlik başlıkları, tarayıcıya bir kuralı uygulamasını söyleyen başlıklardır. Bazıları katıdır, bazıları tavsiye niteliğindedir ve hepsi HTML'nizde değil, sunucu yapılandırmanızda, çerçevenizde veya barındırma platformunuzda ayarlanır.
Content-Security-Policy (CSP)
CSP, tarayıcıya sayfanıza hangi içerik kaynaklarının yüklenmesine izin verildiğini bildirir. Buradaki en güçlü başlık ve insanların en korkutucu bulduğu başlık.
Pratikte CSP şu gibi şeyleri ifade eder: komut dosyaları yalnızca kendi etki alanınızdan ve güvenilir bir CDN'den gelebilir; görüntüler HTTPS üzerinden herhangi bir yerden gelebilir; sayfa başka bir site tarafından çerçevelenemez. İzin vermediğiniz bir kaynaktan bir şey yüklenmeye çalışırsa tarayıcı bunu engeller ve girişimi konsolda günlüğe kaydeder.
CSP, güvenli çıktı kodlama ve temizlemenin yanı sıra komut dosyası enjeksiyonuna karşı ek bir savunmadır. Aynı zamanda çok agresif bir şekilde ayarlarsanız bir şeyi kırma olasılığı en yüksek olan başlıktır. Yeni başlayanlar için pratik yol, salt rapor modunda başlamak, nelerin engellendiğini izlemek, gerçek sorunları düzeltmek ve ardından bunu uygulamaktır.
Strict-Transport-Security (HSTS)
HSTS, tarayıcıya belirli bir süre boyunca sitenizle yalnızca HTTPS üzerinden konuşmasını söyler. Bir tarayıcı bu başlığı gördüğünde, kullanıcı yazsa bile etki alanınızla güvenli olmayan bir HTTP bağlantısı kurmayı reddedecektir. http:// veya eski bir bağlantıyı takip ediyor.
Tarayıcı HSTS politikasını öğrendikten sonra HTTP isteklerini göndermeden önce yükseltir. Etki alanı zaten bir HSTS önyükleme girişi tarafından kapsanmadığı sürece, ilk ziyaret yine de HTTP'yi kullanabilir.
Burada saygı duyulması gereken tek şey bağlılıktır. HSTS, tarayıcı tarafından belirttiğiniz süre boyunca hatırlanır; bu nedenle, her alt alan adının HTTPS üzerinde çalıştığını doğrularken kısa bir süre ile başlayın, ardından emin olduğunuzda bu süreyi uzatın.
X-Frame-Options
X-Frame-Options, başka bir sitenin sayfalarınızı bir çerçeve içine yükleyip yükleyemeyeceğini kontrol eder. <iframe> başka birinin sayfasında.
Neden önemsiyorsun? Çünkü çerçeveleme, bir saldırganın gerçek sayfanızı görünmez veya gizlenmiş öğelerle kapladığı ve kullanıcının istemediği bir şeyi tıklattığı tıklama hırsızlığının arkasındaki mekanizmadır. Uygulamanızda herhangi bir oturum açma işlemi varsa (sil düğmesi, ödeme, ayar değişikliği) bunu başka bir yere çerçevelemek, istemediğiniz bir risktir.
Ortak ayar şudur: SAMEORIGINBu, kendi sayfalarınızın birbirini çerçevelemesine olanak tanır ancak diğer herkesi engeller. Hiçbir zaman çerçevelenmeyi düşünmüyorsanız, bu genellikle doğru varsayılandır.
Referrer-Policy
Referrer-Policy, bir kullanıcı sayfanızdan uzaktaki bir bağlantıyı tıkladığında URL'nizin ne kadarının diğer sitelerle paylaşılacağına karar verir. Modern tarayıcılar normalde strict-origin-when-cross-origin kullanır: tam URL aynı kaynaklı isteklerde gönderilebilirken, çapraz kökenli HTTPS istekleri yalnızca kaynağı alır. Açıkça daha zayıf bir politika daha fazlasını açığa çıkarabilir.
Bu önemlidir çünkü tam URL'ler bazen sorgu dizelerinde jetonlar, kimlikler, e-posta adresleri, arama terimleri gibi hassas değerler içerir. Bunları üçüncü bir tarafa sızdırmak sessizdir ve gözden kaçırılması kolaydır.
Mantıklı bir temel, siteler arası isteklerde yalnızca kaynağı göndermek veya hiçbir şey göndermemektir. Size neredeyse hiçbir maliyeti yoktur ve kazara meydana gelen veri sızıntısını ortadan kaldırır.
Pratik setin geri kalanı
Birkaç başlık daha, adlarını bilecek kadar sık karşımıza çıkıyor:
X-Content-Type-Options: nosnifftarayıcının bir dosyanın türünü tahmin etmesini durdurur; bu, aksi takdirde yüklenen bir dosyayı çalıştırılabilir bir komut dosyasına dönüştürebilir.Permissions-Policykamera, mikrofon veya coğrafi konum gibi kullanmadığınız tarayıcı özelliklerini kapatır.Cross-Origin-Opener-Policyve ilgili çapraz kaynak başlıkları, sayfanızı diğerlerinden izole ederek belirli saldırıların kontrol altına alınmasına yardımcı olur.
İlk gün bunların hepsine ihtiyacınız yok. Ne yaptıklarını bilmek, panik yapmadan bir tarama raporunu okumanıza yardımcı olur.
Başlıklarınızı birkaç dakika içinde nasıl kontrol edebilirsiniz?
Bakmanın iki yolu var.
İlk olarak, manuel rota: geliştirici araçları, Ağ sekmesi, sayfa isteğine tıklayın ve yanıt başlıklarını okuyun. Bu, tek bir başlığın mevcut olduğunu doğrulamak ve beklediğiniz şekilde ayarlamak için kullanışlıdır.
İkincisi, birden fazla sayfa için pratik yol: tarama yapmak. Bir tarayıcı, sitenizi bir tarayıcının yaptığı gibi getirir ve hangi güvenlik başlıklarının mevcut olduğunu, hangilerinin eksik olduğunu ve her bir boşluğun neyi açığa çıkardığını bildirir. Bu size bir ham metin duvarı yerine önceliklendirilmiş bir liste sunar ve manuel olarak açmayı düşünmediğiniz sayfaları kontrol eder.
VICE'nin ücretsiz hafif güvenlik taraması gibi genel amaçlı bir araç, diğer sorunların yanı sıra başlık bulgularını da işaretleyecek ve her birinin arkasındaki kanıtlarla birlikte, bu sorunun neden ortaya çıktığını anlayabilmeniz için.
Bunları düzeltin ve yeniden taramayla doğrulayın
Başlıklar yapılandırmada yer aldığından çoğu düzeltme küçüktür: sunucu yapılandırmanıza bir satır, çerçevenize bir ayar veya ana makinenizin kontrol paneline bir seçenek ekleyin. Her seferinde bir başlığı değiştirin ve sitenin hala çalıştığını doğrulayın.
Daha sonra yeniden tarayın. Bu insanların atladığı adımdır. Bir yapılandırmayı düzenlemek, başlığın artık her sayfada doğru olduğu anlamına gelmez ve bir şeyi kontrol panelinde sabit olarak işaretlemek onu onaylamakla aynı şey değildir. Yalnızca aynı kapsamdaki yeni bir tarama, değişikliğin gerçekten etkili olduğunu size söyler.
Ücretsiz bir taramayla başlayın, başlıklarınızın gerçekte ne yaptığına bakın ve en önemli bulguları birer birer düzeltin. Bu makul bir ilk geçiş ve varsayılanların iyi olmasını ummaktan çok daha iyi bir konum.



