Geliştiricinin, saldırılara karşı savunma yapmak için güvenlik açıklarını azaltması ve bir uygulamaya güvenlik özellikleri eklemesi gerekir. Neyse ki web'de tarayıcı birçok güvenlik özelliği sağlar. Bazıları geliştiriciler tarafından etkinleştirilebilir, bazıları ise kullanıcıları korumak için varsayılan olarak etkindir.
"Korumalı alan" fikri
Modern web tarayıcıları "korumalı alan" fikri üzerine kurulmuştur. Korumalı alan, uygulamayı kısıtlanmış bir ortamda çalıştırmak için kullanılan bir güvenlik mekanizmasıdır. Çocukların istedikleri şeyleri sınır içinde, başka yerde karmaşaya yol açmadan oluşturabildikleri, oyun alanındaki fiziksel korumalı alanlar gibi, uygulama kodları da kısıtlanmış bir ortamda yürütülme özgürlüğüne sahiptir. Örneğin, JavaScript, sayfaya öğe ekleyebilir ve sayfadaki öğeleri değiştirebilir, ancak harici bir JSON dosyasına erişimi kısıtlanabilir. Bu durum, aynı kaynak adı verilen bir korumalı alan özelliğinden kaynaklanmaktadır.
Korumalı alan neden gereklidir?
Web kullanıcıları her gün rastgele bir kod indirip bilgisayarlarında veya telefonlarında birkaç kez çalıştırırlar. Birisi size "Hey! "Bu uygulamayı indirin ve çalıştırın!" mesajını görürseniz, söz konusu uygulamanın güvenilir bir kaynaktan gelip gelmediğini düşünmek, uygulama satıcısı ile ilgili bilgileri okuyabilir veya yorumları dikkatli bir şekilde kontrol etmek isteyebilirsiniz. Peki, biri size "bu blog yayınına göz atın" şeklinde bir URL gönderdiğinde ne olur? Muhtemelen "Bu site ne tür JavaScript indirecek?" gibi sorular sormadan düğmeyi tıklarsınız.
Tarayıcı korumalı alanı, rastgele kod çalıştırmayı daha güvenli hale getirerek web'de gezinmeyi sorunsuz hale getiren en önemli özelliktir.
Güvenli bir tasarıma sahip olun
Tarayıcı, her bir web uygulamasını korumalı alana alıyorsa, güvenlikle de ilgilenmeli miyiz? Kesinlikle evet!
Öncelikle, korumalı alan özellikleri mükemmel bir kalkan değildir. Tarayıcı mühendisleri çok çalışsalar da, tarayıcıların güvenlik açıkları olabilir ve saldırganlar her zaman korumalı alanı atlatmaya çalışırlar (örneğin, Spectre Attack).
Korumalı alan bazen harika bir web deneyimi oluşturmanın yolunu açabilir. Örneğin, bir tarayıcı, farklı bir alanda barındırılan bir resmin getirme isteğini engelleyebilir. Kaynaklar Arası Kaynak Paylaşımı'nı (kısaca CORS) etkinleştirerek kaynakları farklı alanlarda paylaşabilirsiniz. Ancak bu işlem dikkatli bir şekilde yapılmazsa bir kaynağı web'deki diğer herkese açık hale getirerek, korumalı alanı geri alabilirsiniz.
Son adım
Güvenli bir web deneyimi yalnızca uygulamanızın tasarımında güvenliğin sağlanmasıyla mümkün olur. Güçlü bir tasarım, mevcut özelliklerin anlaşılmasıyla başlar. Sonraki iki kılavuzda CORS ve aynı kaynak politikası ayrıntılı olarak ele alınmaktadır.