Tüm rehberler
Yüksek önem derecesiYapılandırma Hataları

Production'daki source map'ler kaynak kodunu sızdırır

Source map'ler (.js.map dosyaları), tarayıcıların minify edilmiş kodu orijinal kaynağına geri eşlemesini sağlar. Production'da herkese açık sunulurlarsa, herkes minify edilmemiş kod tabanını, yorumlarla birlikte yeniden oluşturabilir.

Nedir

Build araçları, hata ayıklamaya yardımcı olmak için source map'ler üretir. Minify edilmiş bundle, aynı zamanda deploy edilmiş bir .map dosyasına referans verdiğinde, tarayıcı — ve herkes — orijinal kaynağı indirebilir.

Bu; iç mantığı, adlandırmayı, TODO yorumlarını ve bazen backend'inin ve auth'unun nasıl çalıştığını ortaya koyan sabit kodlanmış değerleri açığa çıkarır.

Neden önemli

Okunabilir kaynak, saldırganların mantık hatalarını, gizli endpoint'leri ve yalnızca istemcide çalışan doğrulamaları bulmasını çok daha kolaylaştırır.

Ayrıca bundle içinde 'gizli' varsayılan secret'ları veya iç URL'leri de sızdırabilir.

Nasıl düzeltilir

Next.js'te production source map'lerini devre dışı bırak

Production build'leri için tarayıcı source map'lerini kapat.

// next.config.js
module.exports = { productionBrowserSourceMaps: false };
Ya da özel tut

Hata izleme için source map'lere ihtiyacın varsa, onları hata izleyicine (örn. Sentry) yükle ve sunmak yerine herkese açık build'den çıkar.

Gittiklerini doğrula

Deploy'dan sonra, bundle'ının .map URL'lerinden birini iste. JSON source map değil, 404 döndürmeli.

SSS

Source map'ler her zaman kötü müdür?

Hayır — hata ayıklama için çok değerlidirler. Sorun, onları production'da herkese açık sunmaktır. Bunun yerine izleme pipeline'ında tut.

Minification kodumu korur mu?

Yalnızca yüzeysel olarak. Herkese açık bir source map ile minification tamamen okunabilir kaynağa geri döndürülür.

Uygulaman etkileniyor mu?

AppSafe, bunu ve onlarca başka sorunu tek bir ücretsiz taramada kontrol eder.

Uygulamamı ücretsiz tara