İçeriğe atla
Noroxi

JavaScript kütüphane açığı taraması (jQuery)JavaScript kütüphane açığı taraması

Sitenizin tarayıcıya gönderdiği betikleri okur, jQuery, Bootstrap, AngularJS, React, Vue, Lodash, Moment.js gibi kütüphaneleri ve sürümlerini bulur, npm audit ile aynı danışma verisinden (GitHub Advisory Database / OSV) CVE'leri eşler. Her kütüphane için aynı daldaki güvenli sürümü, KEV'de olup olmadığını, desteğinin bitip bitmediğini ve kopyayı kimin yüklediğini (WordPress çekirdeği, eklenti, tema, CDN) söyler. Kod erişimi ve sahiplik gerekmez.

Örnek sonuçlar:

Yazdığınız alan adı gerçekten taranır: yalnızca herkese açık bilgi okunur (HTTP başlıkları, sayfa ve yüklediği betikler, TLS el sıkışması, DNS, sertifika kayıtları). Sonuç kaydedilir (aynı alan adı 10 dakika içinde yeniden taranmaz); hesapsız günde 3, ücretsiz üyeye saatte 10 tarama.

Bu test ne yapar?

JavaScript kütüphane açığı taraması, sitenizin tarayıcıya gönderdiği betik dosyalarını okur, jQuery, Bootstrap, AngularJS, React, Vue, Lodash gibi kütüphaneleri ve sürümlerini bulur, npm audit ile aynı GitHub Advisory Database verisinden CVE'leri eşler. Her kütüphane için aynı daldaki güvenli sürümü, KEV durumunu, destek sonunu ve kopyayı kimin yüklediğini söyler.

Ana sayfaya bir GET isteği gönderilir (en çok 3 yönlendirme), sonra sayfanın yüklediği betik dosyaları okunur: sitenin kendi dosyaları ve kütüphane CDN'leri, en çok 30 dosya; modül paketlerinin içe aktardığı parçalar da izlenir. Analitik ve reklam betikleri indirilmez. Paket dosyası bir webpack lisans dosyası gösteriyorsa o da okunur; sitenin kendi betiklerinde kaynak haritası başvurusu varsa haritanın yalnızca ilk birkaç baytı okunur (açık mı?). İçerik saklanmaz, form doldurulmaz, sayfa gezilmez. Sürüm dosyanın içinden (lisans satırı, sürüm dizesi, dosya özeti) ya da adresinden okunur; okunamayan kütüphane "açık yok" sayılmaz.

Neyi kontrol eder, nasıl düzeltilir

Testin baktığı her madde, neden önemli olduğu ve eksikse ne yapmanız gerektiği. Sonuç ekranında aynı adımlar yalnızca sizin sitenizde eksik olanlarla gösterilir.

Aktif sömürülen açık barındıran kütüphane

Neden önemli: CISA'nın KEV listesindeki ya da hazır saldırı aracı (Metasploit, Nuclei) bulunan bir açık, saldırganların bugün kullandığı açıktır. Örneğin jQuery 3.5.0 öncesindeki CVE-2020-11023, 23 Ocak 2025'te KEV'e girdi.

Nasıl düzeltilir: Kütüphaneyi raporda yazan güvenli sürüme yükseltin. Kopya bir WordPress eklentisi ya da temasıyla geliyorsa o bileşeni güncelleyin; CDN'den geliyorsa adresteki sürümü değiştirin ve integrity değerini yenileyin.

npm ile yükseltmebash
npm install jquery@3.7.1 --save-exactnpm audit --omit=dev

Kritik ya da yüksek önemli açık

Neden önemli: Kritik ve yüksek önemli kayıtlar çoğunlukla kullanıcı girdisiyle sayfada kod çalıştırma (XSS), prototip kirletme ya da şablon enjeksiyonu türündedir; kütüphane o işlevi kullanan sayfada istismar edilebilir.

Nasıl düzeltilir: Aynı daldaki güvenli sürüme yükseltin; dalın düzeltmesi yoksa rapor ana sürüm yükseltmesini önerir. Yükseltmeden önce kütüphanenin sürüm notlarındaki uyumsuzlukları okuyun.

Orta ya da düşük önemli açık

Neden önemli: Orta önemli kayıtlar genellikle belirli bir işlevin belirli bir girdiyle çağrılmasını gerektirir; tek başına acil değildir ama sayfanız o işlevi kullanıyorsa gerçek risktir.

Nasıl düzeltilir: Bir sonraki bakım penceresinde güvenli sürüme yükseltin. Açık yalnızca belirli bir işlevdeyse (ör. jQuery htmlPrefilter) o işlevi kullanmadığınızı kodda doğrulayabilirsiniz.

Desteği biten sürüm

Neden önemli: Desteği biten dala (AngularJS, jQuery 1.x/2.x, Bootstrap 3/4, Vue 2) yeni çıkan açık için düzeltme gelmez. Bugün açığı olmasa da yarın çıkacak açık kapatılmayacak.

Nasıl düzeltilir: Desteği süren dala geçişi planlayın. AngularJS gibi ürünü tamamen biten kütüphanelerde geçiş bir yeniden yazım olabilir; o zamana kadar CSP ile betik kaynaklarını kısıtlayın.

Ele geçirilmiş kaynaktan betik

Neden önemli: polyfill.io alan adı 2024'te el değiştirdi ve yeni sahibi betiğe ziyaretçileri dolandırıcılık sitelerine yönlendiren kod ekledi; aynı işletmecinin bootcdn, bootcss ve staticfile alan adları da listede. Bu adreslerden yüklenen betik sitenizde başkasının kodunu çalıştırır.

Nasıl düzeltilir: Betiği hemen kaldırın. Polyfill gerekiyorsa Cloudflare ya da Fastly'nin aynasını kullanın ya da gerekli polyfill'i kendi paketinize ekleyin.

Sürümü sabitlenmemiş CDN adresi

Neden önemli: jsDelivr/unpkg'da sürümsüz ya da @latest adres, paket sahibi yeni sürüm yayımladığında içeriği kendiliğinden değiştirir. 2024'te lottie-player'ın ele geçirilen hesabından yayımlanan sürümler bu yoldan sitelere ulaştı.

Nasıl düzeltilir: Adreste tam sürüm yazın ve integrity ekleyin.

Sabit sürüm + integrityhtml
<!-- Kaçının: https://cdn.jsdelivr.net/npm/paket@latest/dist/paket.min.js --><script src="https://cdn.jsdelivr.net/npm/jquery@3.7.1/dist/jquery.min.js"        integrity="sha384-1H217gwSVyLSIfaLxHbE7dRb3v4mYCKbpQvzx0cegeju1MVsGrX5xXxAvs/HgeFs"        crossorigin="anonymous"></script>

CDN betiğinde integrity (SRI)

Neden önemli: Kütüphane CDN'inden yüklenen betikte integrity özniteliği yoksa CDN'de ya da yolda değiştirilen dosya tarayıcıda sorgusuz çalışır. integrity varsa tarayıcı özeti tutmayan dosyayı çalıştırmaz.

Nasıl düzeltilir: Sürümlü CDN adreslerine integrity ve crossorigin="anonymous" ekleyin; değeri CDN'in sayfasından ya da "openssl dgst -sha384 -binary dosya.js | openssl base64 -A" ile alın.

Herkese açık kaynak haritası

Neden önemli: Yayındaki .map dosyası paketlenmiş kodun okunabilir kaynağını ve dosya yollarını verir; saldırganın uygulamanın iç yapısını, gizli uç noktaları ve unutulmuş anahtarları aramasını kolaylaştırır.

Nasıl düzeltilir: Kaynak haritalarını yayına koymayın (webpack "devtool: false" ya da "hidden-source-map", Vite "build.sourcemap: false" ya da "hidden") ve hata izleme servisine yalnızca yükleme olarak gönderin.

Okunan betikler

Neden önemli: Bilgi amaçlı: kaç betiğin bulunduğu, kaçının okunduğu ve kaç kütüphanenin tanındığı. Okunmayan dosyalar (analitik/reklam ya da sınırın üstündekiler) bu sayıda görünür.

Nasıl düzeltilir: Sürümü okunamayan uygulamalarda package-lock.json dosyasını SBOM sayfasında eşleyin; dışarıdan görülemeyen bağımlılıklar da kontrol edilir.

Sık sorulan sorular

npm audit'ten farkı ne?
npm audit package-lock.json dosyasını okur, kod erişimi ister ve siteye hiç gitmeyen geliştirme paketlerini de sayar. Bu tarama yalnızca alan adıyla çalışır ve canlıda gerçekten yüklenen kopyaları görür; aynı kütüphanenin tema ve eklentiden gelen iki ayrı sürümü ayrı satırdır. Sunucu tarafı bağımlılıkları göremez; kodunuz elinizdeyse SBOM sayfasında package-lock eşleyin.
Paketlenmiş (webpack, Vite) sitelerde sürüm bulunur mu?
Çoğu zaman bulunur: küçültücüler lisans satırlarını ve kütüphanenin kendi sürüm dizesini (ör. React'ın version alanı, Bootstrap'ın VERSION değeri) korur, webpack lisans dosyası ve modül parçaları da okunur. Paketleyici sürümü tamamen attıysa sonuç "görülemedi" der, "açık yok" demez.
WordPress sitemde jQuery açığı çıktı, ne yapmalıyım?
Rapor kopyanın kimden geldiğini yazar. wp-includes altındaysa WordPress çekirdeğini güncelleyin; eklenti ya da tema klasöründeyse o bileşeni güncelleyin ya da değiştirin. Eski bir jQuery'yi kendisi paketleyen tema ve eklentiler en sık görülen durumdur.
Neden bazı kütüphanelerde güvenli sürüm başka bir ana sürüm?
Güvenli sürüm, kayıtların kendi düzeltme sürümlerinden bilinen tüm açıkları birlikte kapatan en küçük sürümdür. jQuery 1.x ve Bootstrap 3 gibi desteği biten dallara düzeltme gelmediği için öneri bir sonraki ana sürüm olur.
Ücretsiz mi, hesap gerekiyor mu?
Evet, ücretsiz ve hesap gerekmez: hesapsız günde 3 tarama hakkı var (tüm ücretsiz araçlar ve karne ortak). Ücretsiz hesapla saatte 10 tarama yapabilir, sonuçlarınızı ve geçmişinizi saklayabilirsiniz.
Sitemde çalıştırmak güvenli mi?
Hafif tarama yalnızca herkese açık bilgiyi okur (DNS, TLS el sıkışması, HTTP yanıtı, sertifika kayıtları); form doldurmaz, parola denemez, açık sömürmez. Her aracın tam olarak neyi okuduğu "Kaynaklar ve yöntem" bölümünde yazar.

Diğer testler

Diğer ücretsiz güvenlik araçları