Araştırmalara Dön
AppSec

Frontend'de Unutulan Sırlar: Hackerlar JavaScript Dosyalarından Neleri Çalıyor?

Mevlüt YıldırımYazar
31 Mart 2026
3 dk okuma

Frontend'de Unutulan Sırlar: Hackerlar JavaScript Dosyalarından Neleri Çalıyor?

Modern web uygulamaları (SPA - Single Page Applications) geliştirilirken, backend mantığının büyük bir kısmı istemci (frontend) tarafına kaymıştır. React, Vue.js veya Angular gibi yapılar kullanarak sitenizi derlediğinizde (npm run build), tüm o süslü arayüz devasa bir app.bundle.js dosyasına dönüşür ve kullanıcının tarayıcısına aktarılır.

Ancak geliştiricilerin en büyük kör noktası şudur: Tarayıcıya inen hiçbir şey "gizli" değildir. Siber korsanlar veya hata ödül avcıları (Bug Bounty Hunters), sitenize girdiklerinde tasarımla ilgilenmez; doğrudan F12 araçlarından .js dosyalarınızı parçalamaya başlarlar.

Kısa Cevap: JavaScript kaynak kodlarınızda veya .js.map (Source Map) dosyalarınızda "test amaçlı" veya kazara bıraktığınız AWS anahtarları, Stripe API token'ları, Firebase yapılandırmaları ve JWT gizli anahtarları saniyeler içinde özel otomasyon botları tarafından çekilir (extract). Kodunuzda const API_KEY = "sk_live_..." gibi bir değişkenin barınması, bir hacker'ın iç ağınıza veya şirket ödeme altyapınıza sızması için tek başına yeterlidir.

Bu makalede frontend tarafında en sık rastlanan gizli bilgi sızıntılarını (Secrets Exposure) ve Eresus Security uzmanlarının Black Box sızma testlerinde bu verileri nasıl ayıkladığını inceliyoruz.


1. Hackerlar JS Dosyalarını Nasıl İnceler?

Sıradan bir kullanıcı siteye girdiğinde sadece butonları ve metinleri görür. Bir pentester ise şu süreci işletir:

  1. Recon (Keşif): Siteye ait tüm JS, JSON ve CSS dosyaları yakalanır.
  2. Beautify / Deobfuscation: Sıkıştırılmış (minified) ve okunmaz hale getirilmiş (obfuscated) kod, otomatik araçlarla okunaklı hale getirilir.
  3. Regex Analizi: Özel tanımlanmış Kurallı İfadeler (Regular Expressions) ile dosyanın içinde hızlı bir tarama yapılır. Örneğin AKIA[0-9A-Z]{16} gibi bir desen arandığında, siber korsan direkt olarak kodda unutulmuş bir AWS Access Key ID bulur.

2. En Sık Açığa Çıkan Hassas Bilgiler (Secrets)

A. Gizli Olmayan Bulut Servisi Anahtarları

Özellikle Firebase, Supabase veya AWS S3 kullanan frontend projelerinde, geliştiriciler servislere bağlanmak için anahtarları kod içerisine donanımsal (hardcoded) olarak gömerler. "Sadece arayüze veri çekiyor, tehlikesi yok" diye düşünülen bir Firebase konfigürasyonu, eğer veritabanı kuralları (Database Rules) yanlış yazılmışsa hackerın tüm müşteri veritabanınızı tek bir curl komutuyla silmesine neden olabilir.

B. Özel (Private) API Endpoints ve Yönlendirmeler

Hackera yetki vermek bazen şifreyle değil, nereye saldıracağını göstermekle olur. JavaScript dosyalarınızda yorum satırı içerisinde unutulmuş // TODO: Test uat-admin.website.com/api/v2/users şeklindeki bir ibare, şirketin gizli tuttuğunu sandığı test (UAT) ortamlarının deşifre olmasına neden olur.

C. Source Map (Kaynak Haritası) Unutkanlığı

Uygulamanız canlıya (Production) geçerken asıl React kodlarını şifreler, ancak eğer app.js.map tarzı dosya uzantıları sunucuda bırakılırsa, herkes orijinal kaynak kodunuzu hiyerarşik dosyalarıyla birlikte, aynen VSCode'da yazmışsınız gibi aynısı okuyabilir.


3. Kodumdan API Anahtarını Çaldırmak İstemiyorum, Ne Yapmalıyım?

  • 1. Çevre Değişkenleri (Environment Variables) Doğru Kullanımı: API anahtarlarınızı process.env gibi çevre değişkenlerinde tutmak frontend tarafında yüzde yüz güvenli değildir. Eğer kodun çalışması için tarayıcıda o anahtara ihtiyaç varsa (örneğin Stripe Publishable Key), bu anahtar zaten ağ trafiğine çıkacaktır. Hassas anahtarları (Secret Keys) kesinlikle Backend'te (Node.js, Go) tutmalı ve Frontend'i sadece bir aracı olarak kullanmalısınız.
  • 2. CI/CD Boru Hattı Taraması: Git deponuza (repository) kod pushlamadan önce GitLeaks, TruffleHog gibi araçlarla commit geçmişinizi "secret" sızıntılarına karşı taratın.
  • 3. Source Map Devre Dışı Bırakma: Production ortamı derlenirken framework ayarlarınızdan "SourceMap generation" özelliğini false konumuna getirin.

Uzman Uyarısı: JS Dosyalarındaki sızıntılar sadece yapısal okumalarla (statik analiz) bulunur ve genelde şirket içi geliştiricilerin radarına girmez.

Web tabanlı uygulamalarınızın hem statik (SAST) hem de dinamik (DAST) olarak analiz edilmesi ve istemci tarafı kör noktalarının ortadan kaldırılması için Eresus Security AppSec test uzmanlarıyla iletişime geçebilir, güvenli yazılım geliştirme döngünüzü optimize edebilirsiniz.