iToverDose/Yazılım· 10 MAYIS 2026 · 16:05

Tarayıcı Güvenlik Sınırı Olmamalı: Ön Uç Yetkilendirme Hataları

Ön uç uygulamalardaki yetkilendirme mantığının sunucu tarafında doğrulanması neden zorunludur? Tarayıcının güvenilir bir altyapı olmadığını ve lokal depolamanın saldırganlarca nasıl manipüle edilebileceğini inceleyin.

DEV Community3 dk okuma0 Yorumlar

Günümüzün modern web uygulamaları, iş mantığını giderek daha fazla ön uca taşıyor. React, Angular, Vue gibi kütüphanelerle geliştirilen tek sayfalık uygulamalar, mobil hibrit çözümler ve API odaklı mimariler, kullanıcı arayüzlerinin hızlanmasını, kullanım deneyiminin iyileşmesini ve arka uç yükünün azalmasını sağlıyor. Ancak bu yaklaşım, istemciye (tarayıcıya) aşırı güvenerek ciddi güvenlik risklerine de yol açıyor.

Güncel işletme uygulamalarında sıkça karşılaşılan ve yıllardır uyarılan bir tehlike var: tarayıcıyı yetkilendirme sınırı olarak kabul etmek. OWASP (Open Web Application Security Project) gibi kuruluşlar, bu hatanın onlarca yıldır bilindiğini ve uygulama güvenliğinin temel ilkelerinden biri olduğunu vurguluyor.

OWASP’in On Yıllardır Söylediği Gerçek

OWASP, erişim denetiminin yalnızca güvenilir sunucu tarafı kodunda etkili olduğunu açıkça belirtiyor. Ayrıca, istemci tarafındaki yetkilendirme mantığının güvenilir olmaması gerektiğine dair uyarılarını sık sık yineliyor. Yerleşik rehberliklerinde, yerel depolama alanında hassas verilerin saklanmasının, JavaScript değişkenlerine güvenilmesinin ve tarayıcı tarafı mantığının yetkilendirme kararlarında kullanımının riskli olduğunu ifade ediyor.

Tarayıcı, güvenilir bir altyapı değildir. İçinde barındırılan her şey saldırganlar tarafından:

  • değiştirilebilir,
  • yeniden oynatılabilir,
  • ele geçirilebilir,
  • manipüle edilebilir,
  • ya da bypass edilebilir.

Bu durum, özellikle localStorage, sessionStorage, gizli alanlar, önbelleğe alınmış API yanıtları ve kullanıcı rol nesnelerini etkiliyor. Örneğin, bir uygulama if (user.role === "admin") { showAdminPanel(); } gibi bir kod parçasıyla yönetici panelini gizleyebilir. Ancak sunucu tarafında aynı doğrulamanın yapılmaması, saldırganın tarayıcıda rolünü değiştirerek yetkisiz erişim sağlamasına olanak tanır.

Sunum Mantığı mı, Yetkilendirme Mantığı mı?

Ön uç uygulamaların kullanıcı deneyimini iyileştirmek için menüleri gizlemesi, düğmeleri devre dışı bırakması veya rolleri filtrelemesi doğaldır. Ancak bu işlemler, yetkilendirme mantığının yerini alamaz. Yetkilendirme, sunucu tarafından bağımsız olarak doğrulanmalıdır. Aksi takdirde, tarayıcı güvenlik sınırı haline gelir — ki bu da ciddi bir güvenlik açığıdır.

Birçok geliştirici, kullanıcı arayüzünde gizlenen fonksiyonların güvenli olduğunu varsayar. Oysa saldırganlar, API isteklerini, JavaScript dosyalarını, ağ trafiğini ve gizli rotaları inceleyerek bu korumayı kolayca bypass edebilir. Güvenlik, görünürlük üzerinden değil, sunucu tarafındaki doğrulama üzerinden sağlanmalıdır.

localStorage Neden Özel Bir Tehlike?

OWASP’in istemci tarafı güvenlik kılavuzları, hassas verilerin tarayıcıda saklanmasının risklerine dikkat çekiyor. Geliştiriciler sıkça, kullanıcı rolleri, JWT tokenleri, izin düzeyleri veya kimlik doğrulama durumlarını localStorage içinde depoluyor. Ancak bu alan, kullanıcının tam kontrolünde. Tarayıcı geliştirici araçları, JavaScript konsolu, uzantılar veya araya girmiş proxyler yoluyla kolayca değiştirilebilir.

OWASP’in mobil ve istemci tarafı güvenlik şeridi, bu konuyu net bir şekilde özetliyor: "Tüm istemci tarafı kontrollerinin bypass edilebileceğini varsayın." Bu cümle, yerel depolamanın güvenilmezliğini ve yetkilendirme kararlarında kullanılmaması gerektiğini vurguluyor.

Erişim Denetimi Hataları Hala En Kritik Güvenlik Riski

OWASP Top 10 raporlarının 2021 sürümü, Erişim Denetimi Hatalarını (A01) en ciddi güvenlik riski olarak sınıflandırıyor. Bu kategori, gizlilikten bütünlüğe, ayrıcalık sınırlarına ve güven ilişkilerine kadar geniş bir alanı etkiliyor. Yetkilendirme hataları, saldırganlara anında hassas verilere, yönetici işlevlerine veya içsel iş akışlarına erişim sağlayabilir.

Son araştırmalar da bu riskin ne kadar yaygın olduğunu gösteriyor. BACFuzz projesi, gerçek dünya uygulamalarında daha önce bilinmeyen düzinelerce Erişim Denetimi Hatası keşfetti. Benzer şekilde, BOLA (Kırık Nesne Düzeyinde Yetkilendirme) çalışmaları da API’lerin zayıf yetkilendirme sınırları nedeniyle saldırılara açık olduğunu ortaya koydu.

Bu, nadir görülen bir hata değil — endüstrinin yaygın mimari bir sorunudur.

Gerçek Dünyadan Örnekler

Geçtiğimiz yıllarda, büyük platformlarda bile Erişim Denetimi Hataları tespit edildi. Örneğin, 2023 yılında yayınlanan bir rapor, bazı bulut tabanlı uygulamaların API’lerinde yetkilendirme kontrollerinin eksik olduğunu gösterdi. Saldırganlar, kullanıcı kimliklerini değiştirerek yönetici paneline erişim sağlayabiliyordu. Bu tür olaylar, tarayıcıya güvenmenin ne kadar riskli olduğunu bir kez daha gözler önüne seriyor.

Güvenlik ekipleri, istemci tarafı mantığına bağımlılığı azaltmak için:

  • sunucu tarafında bağımsız yetkilendirme kontrolleri uygulamalı,
  • hassas verileri asla tarayıcıda saklamamalı,
  • API yanıtlarını her zaman doğrulamalı ve
  • gizli rotaları veya hassas işlevleri yalnızca sunucu tarafında erişilebilir kılmalıdır.

Tarayıcı, kullanıcı arayüzü sunmanın ötesinde bir güvenlik sınırı değildir. Yetkilendirme kararlarının merkezi, her zaman sunucu tarafında olmalıdır. Bu yaklaşım, uygulamaları hem daha güvenli hem de daha sağlam hale getirecektir.

Günümüzün hızla gelişen dijital ortamında, güvenlik yalnızca kullanıcı dostu arayüzlerin ötesinde ele alınmalıdır. Tarayıcının sınırlarını kabul etmek, uygulamaların gelecekteki saldırılara karşı dirençli kalmasını sağlayacaktır.

Yapay zeka özeti

Ön uç uygulamalardaki yetkilendirme mantığının sunucu tarafında doğrulanmaması ciddi güvenlik risklerine yol açar. Tarayıcıya güvenmenin tehlikelerini ve OWASP’in uyarılarını keşfedin.

Yorumlar

00
YORUM BIRAK
ID #1NSU2N

0 / 1200 KARAKTER

İnsan doğrulaması

5 + 3 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.