FixVibe
Covered by FixVibemedium

next.config.js'de Next.js Güvenlik Başlığı Yanlış Yapılandırması

Başlık yönetimi için next.config.js kullanan Next.js uygulamaları, yol eşleştirme kalıplarının kesin olmaması durumunda güvenlik açıklarına karşı hassastır. Bu araştırma, joker karakter ve normal ifade yanlış yapılandırmalarının, hassas rotalarda eksik güvenlik başlıklarına nasıl yol açtığını ve yapılandırmanın nasıl güçlendirileceğini araştırıyor.

CWE-1021CWE-200

Etki

Eksik güvenlik üstbilgileri, tıklama hırsızlığı, siteler arası komut dosyası oluşturma (XSS) gerçekleştirmek veya [S2] sunucu ortamı hakkında bilgi toplamak için kullanılabilir. Content-Security-Policy (CSP) veya X-Frame-Options gibi başlıklar rotalar arasında tutarsız bir şekilde uygulandığında, saldırganlar site genelindeki güvenlik kontrolleri [S2]'yi atlamak için belirli korumasız yolları hedefleyebilir.

Temel Neden

Next.js, geliştiricilerin next.config.js'deki yanıt başlıklarını headers [S2] özelliğini kullanarak yapılandırmalarına olanak tanır. Bu yapılandırma, joker karakterleri ve [S2] normal ifadelerini destekleyen yol eşleştirmeyi kullanır. Güvenlik açıkları genellikle şunlardan kaynaklanır:

  • Eksik Yol Kapsamı: Joker karakter desenleri (ör. /path*), amaçlanan tüm alt rotaları kapsamayabilir ve iç içe geçmiş sayfaları [S2] güvenlik başlıkları olmadan bırakabilir.
  • Bilgi Açıklaması: Varsayılan olarak Next.js, X-Powered-By başlığını içerebilir; bu, [S2] yapılandırması aracılığıyla açıkça devre dışı bırakılmadığı sürece çerçeve sürümünü gösterir.
  • CORS Yanlış yapılandırma: headers dizisi içindeki yanlış tanımlanmış Access-Control-Allow-Origin başlıkları, hassas [S2] verilerine yetkisiz çapraz kaynak erişimine izin verebilir.

Beton Düzeltmeleri

  • Yol Modellerini Denetleyin: next.config.js'deki tüm source modellerinin, gerektiğinde [S2] başlıklarını genel olarak uygulamak için uygun joker karakterler (ör. /:path*) kullandığından emin olun.
  • Parmak İzini Devre Dışı Bırak: X-Powered-By başlığının [S2] olarak gönderilmesini önlemek için next.config.js'de poweredByHeader: false'yi ayarlayın.
  • CORS'yi kısıtla: Access-Control-Allow-Origin'yi, headers yapılandırmasındaki [S2]'deki joker karakterler yerine belirli güvenilen etki alanlarına ayarlayın.

FixVibe bunu nasıl test ediyor?

FixVibe, uygulamayı tarayarak ve çeşitli yolların güvenlik başlıklarını karşılaştırarak aktif bir geçit araştırması gerçekleştirebilir. X-Powered-By başlığını ve Content-Security-Policy'nin farklı yol derinliklerindeki tutarlılığını analiz ederek FixVibe, next.config.js'deki yapılandırma boşluklarını belirleyebilir.