Bir JavaScript kütüphanesinde bilinen güvenlik açıkları var
sec_js_vulnerableKısa cevap
Sitenizin yüklediği bir betik, retire.js veritabanında bilinen güvenlik açıklarıyla listelenen bir kütüphane sürümü. Sorun kütüphaneyi, bulunan sürümü, CVE'leri ve bunları düzelten sürümü gösterir. Kütüphaneyi en az o sürüme güncelleyin; bir tema ya da eklenti onu içinde getiriyorsa o temayı ya da eklentiyi güncelleyin.
Neden önemli
Eski kütüphane sürümleri belgelenmiş açıklar taşır; örneğin 3.5.0 öncesi jQuery'de ya da 3.4.1 ve 4.3.1 öncesi Bootstrap'te siteler arası betik çalıştırma (XSS), eski lodash'ta prototip kirletme. Belirli bir açığın sitenizde istismar edilip edilemeyeceği, kodunuzun güvenilmeyen girdiyi etkilenen işleve verip vermediğine bağlıdır; yani her bulgu açık bir kapı değildir. Ama sürüm herkese görünür, güvenlik anketleri ve ödeme kartı taramaları bunu işaretler ve alan adınızdaki bir XSS oturumları çalabilir ya da sayfaları değiştirebilir.
Glimana bunu nasıl tespit eder
Glimana ana sayfanızdaki ve iki örnek sayfadaki betik adreslerini, ayrıca sitenizi tararken bilinen en çok 400 .js dosyasını toplar. Kütüphaneyi ve sürümü adresten ya da dosya adından (örneğin jquery-1.12.4.min.js), tanınmayan en çok altı betik için ilk 4 KB'taki lisans başlığından tanır; WordPress'in ?ver= değeri yalnız dosya adı kütüphane adıyla birebir aynıysa kullanılır. Sürümler haftada bir yenilenen retire.js açık deposuyla (Apache-2.0) karşılaştırılır. Önem, bulunan en ciddi açığın önemidir; kritik olanlar yüksek olarak bildirilir. Başlıksız biçimde kendi dosyalarınıza gömülmüş kod tespit edilmez. Veri yüklenmeden kontrol Henüz çalışmıyor görünür.
Nasıl düzeltilir
Dikkat
Ana sürüm atlamaları eski kodu bozabilir; jQuery 3, eski eklentilerin kullandığı birkaç API'yi kaldırdı. Güncellemeden sonra kütüphaneyi kullanan sayfaları deneyin. WordPress'te /wp-includes/ altındaki jQuery çekirdekle birlikte güncellenir; eski kopya genellikle çekirdek jQuery'yi devre dışı bırakıp kendi kopyasını yükleyen bir temadan gelir. Bir CDN'den integrity özetiyle yüklüyorsanız özeti sürümle birlikte değiştirin ve eski dosyanın sunulmasının durması için önbelleğinizi boşaltın.
- Glimana'da bulguyu bulun. Güvenlik sayfasını açın; bu kontrol Güncel olmayan yazılım grubunda, son taramanın kanıtı başlığının altında. Aynı sorun Sorunlar › Bir JavaScript kütüphanesinde bilinen güvenlik açıkları var altında da listelenir.
-
Düzeltmeyi platformunuzda uygulayın.
Kanıttaki adres dosyayı kimin getirdiğini söyler:
/wp-content/plugins/<slug>/…bir eklenti,/wp-content/themes/<slug>/…bir temadır. O eklentiyi ya da temayı güncelleyin. Temawp_deregister_script( 'jquery' )çağırıp eski bir jQuery'yi kendisi yüklüyorsa, WordPress'in güncel jQuery'sinin kullanılması için bu kodu (bir alt temada) kaldırın ya da tema yazarından düzeltme isteyin.Sürümün nereden geldiğini
npm ls jqueryile bulun (kütüphane adıyla değiştirin),npm install jquery@^3.7.1ile ya da onu getiren bağımlılığı güncelleyerek yükseltin,npm auditçalıştırın, paketi yeniden derleyip yayınlayın.<script src>adresindeki sürümü düzeltilmiş sürüm ya da daha yenisiyle değiştirin veintegritydeğerini tam o dosya için yayımlanan özetle değiştirin. Ardından sitenizin önbelleğini boşaltın. - Glimana'da kontrol edin. Güvenlik sayfasında Yeniden tara düğmesine basın (saatte en çok iki tarama) ya da pazar günkü haftalık taramayı bekleyin; kontrol geçince sorun kapanır.
Düzeltme nasıl doğrulanır
Düzeltmeden sonra Güvenlik sayfasında Yeniden tara düğmesine basın (ya da pazar 04:00'teki haftalık taramayı bekleyin); kontrol geçtiğinde sorun kapanır.