Tarayıcı korumalı alanı

Mariko Kosaka

Saldırılara karşı savunma yapmak için geliştiricinin güvenlik açıklarını azaltması ve uygulamaya güvenlik özellikleri eklemesi gerekir. Neyse ki web'de tarayıcı birçok güvenlik özelliği sunar. Bazı özellikler geliştiricilerin etkinleştirmesine sunulur, bazıları ise kullanıcıları korumak için varsayılan olarak etkindir.

"Deneme alanı" fikri

tarayıcıyı sanal alan olarak kullanma
Şekil: Tarayıcı, korumalı alan olarak

Modern web tarayıcıları, "korumalı alan" fikri üzerine kuruludur. Koruma alanı, bir uygulamayı kısıtlanmış bir ortamda çalıştırmak için kullanılan bir güvenlik mekanizmasıdır. Çocukların oyun alanındaki fiziksel kum havuzunda, başka bir yeri kirletmeden sınırları içinde istedikleri her şeyi yaratabilmesi gibi, uygulama kodu da kısıtlanmış bir ortamda yürütülme özgürlüğüne sahiptir. Örneğin, JavaScript sayfadaki öğeleri ekleyip değiştirebilir ancak harici bir JSON dosyasına erişmesi kısıtlanabilir. Bunun nedeni, aynı kaynaktan sunma adlı bir korumalı alan özelliğidir.

Neden korumalı alan gereklidir?

Web kullanıcıları her gün rastgele kodlar indirip bilgisayarlarında veya telefonlarında birden çok kez çalıştırıyor. Birisi size "Hey! Bu uygulamayı indirip çalıştırın!" mesajını gördüğünüzde, uygulamanın güvenilir bir kaynaktan gelip gelmediğini düşünmek için duraklayabilir, uygulama satıcısı hakkında bilgi edinebilir veya yorumları dikkatlice inceleyebilirsiniz. Peki, birisi size "Bu blog yayınını incele" diyerek URL gönderdiğinde ne yaparsınız? Muhtemelen "Bu site ne tür bir JavaScript indirecek?" gibi sorular sormadan bağlantıyı tıklarsınız.

Tarayıcı korumalı alanı, rastgele kod çalıştırmayı daha güvenli hale getirerek web'de sorunsuz gezinmeyi sağlayan temel özelliktir.

Tasarımı gereği güvenli hale getirme

Tarayıcı her web uygulamasını korumalı alana alıyorsa güvenliği önemsememiz gerekir mi? Evet, elbette.

Öncelikle, korumalı alan özellikleri mükemmel bir kalkan değildir. Tarayıcı mühendisleri çok çalışsa da tarayıcılarda güvenlik açıkları olabilir ve saldırganlar her zaman korumalı alanı atlamaya çalışır (ör. Spectre saldırısı).

Korumalı alan bazen iyi bir web deneyimi oluşturulmasını engelleyebilir. Örneğin, bir tarayıcı farklı bir alanda barındırılan resme yönelik getirme isteğini engelleyebilir. Merkezler Arası Kaynak Paylaşımı'nı (kısaca CORS) etkinleştirerek farklı alanlardaki kaynakları paylaşabilirsiniz. Ancak bu işlem dikkatli bir şekilde yapılmazsa bir kaynağı web'deki herkesin erişimine açabilir ve böylece sanal alanı etkisiz hale getirebilirsiniz.

Özet

Güvenli bir web deneyimi ancak uygulamanızın tasarımına güvenlik dahil edilirse elde edilebilir. Güçlü tasarım ise mevcut özelliklerin anlaşılmasıyla başlar. Sonraki iki kılavuzda CORS ve aynı kaynak politikası ayrıntılı olarak ele alınmaktadır.