Node.js'te yeni dönem: Node 20 desteği bitti, yıllık sürüm modeli ve izin modeliyle sunucu sertleştirme

Sabit admin açtı, 2 gün önce 0 yanıt 11 görüntülenme
admin Admin
  • 0 mesaj
  • 1K puan
  • Katılım 12.2025
  • Konu sahibi

Node.js tarafında 2026'da üç önemli değişiklik var: Node 20'nin desteği sona erdi, sürüm modeli değişiyor ve izin modeli (permission model) üretimde kullanılabilir hale geldi. Kısaca ne yapmanız gerektiği:

1. Node 20 artık güvenlik yaması almıyor

Node 20'nin destek süresi 30 Nisan 2026'da bitti. Bu tarihten sonra çıkan güvenlik açıkları Node 20 için düzeltilmiyor; örneğin Haziran 2026 güvenlik sürümü yalnızca aktif sürüm hatlarını kapsıyordu. Ağustos 2026 itibarıyla durum:

SürümDurumDestek sonu
Node 22Bakım LTS (yalnızca güvenlik ve kritik düzeltmeler)30 Nisan 2027
Node 24Aktif LTS30 Nisan 2028
Node 26Current (5 Mayıs 2026'da çıktı)30 Nisan 2029

Sunucularınızda node -v çıktısı v20 ile başlıyorsa Node 24'e geçişi planlayın.

2. Yıllık sürüm modeli

  • Node 27'den itibaren yılda iki yerine bir ana sürüm çıkacak (her nisan), ekim ayında LTS'ye geçecek.
  • Tek/çift sürüm ayrımı kalkıyor: her sürüm LTS olacak.
  • Sürüm numarası, ilk yayın yılını gösterecek: Node 27'nin alfası Ekim 2026'da başlıyor, 27.0.0 Nisan 2027'de çıkacak.
  • Her sürüm toplam 36 ay destek alacak; Node 26 eski modelle çıkan son sürüm.

Pratik sonuç: yükseltme takvimini yılda bir, nisan-ekim aralığına göre planlayabilirsiniz.

3. İzin modeliyle uygulamayı sınırlamak

Tedarik zinciri saldırılarında zararlı paket, uygulamanızın tüm yetkileriyle çalışır. İzin modeli, sürecin hangi dosyalara ve ağa erişebileceğini sınırlıyor. Önce denetim modunda neye ihtiyaç olduğunu görün:

# Hangi izinlere ihtiyaç duyulduğunu kaydet, engelleme
node --permission-audit app.js

# Ardından izinleri daraltarak çalıştır
node --permission \
     --allow-fs-read=/srv/app \
     --allow-fs-write=/srv/app/uploads \
     app.js

Bayrak adları sürümden sürüme değişebildiği için kendi Node sürümünüzün permissions belgesine bakın.

OpenJS'nin Q2 2026 güvenlik özeti iki öneri daha veriyor:

  • Uygulama açıldıktan sonra artık gerekmeyen izinleri izin modelinin permission.drop() fonksiyonuyla bırakın; örneğin yalnızca açılışta dosya okuyan bir servis sonra bu izni bırakabilir.
  • Kurulum betiklerini engellemek tek başına yeterli değil; çalışma zamanı izin sınırlaması da gerekli.

Bonus: bir bağımlılığı daha az

Node 26 ile gelen yerleşik Temporal API, tarih işlemleri için üçüncü taraf kütüphane ihtiyacını azaltıyor. Bu yıl date-fns'in de tedarik zinciri saldırısından etkilendiği düşünülürse, her kaldırılan bağımlılık saldırı yüzeyini küçültüyor.

const teslim = Temporal.Now.plainDateISO().add({ days: 14 });
console.log(teslim.toString());   // örn. 2026-11-02

Üretimde izin modelini kullanan var mı? Hangi kütüphanelerle sorun yaşadığınızı paylaşırsanız uyumluluk listesi çıkarabiliriz.

Kaynaklar

Yanıt yazmak için giriş yap. Giriş yap Hesap oluştur