window.pipedriveLeadboosterConfig = { bas: 'leadbooster-chat.pipedrive.com', företagId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = fönster if (w.LeadBooster) { console.warn('LeadBooster finns redan') } annars { w.LeadBooster = { q: [], on: funktion (n, h) { this.q.push({ t: "o", n: n, h: h }) }, trigger: funktion (n) { this.q.push({ t: 't', n: n }) }, } } })() Säkerhet i Javascript-paket - The Codest
Codest
  • Om oss
  • Tjänster
    • Utveckling av programvara
      • Frontend-utveckling
      • Backend-utveckling
    • Staff Augmentation
      • Frontend-utvecklare
      • Backend-utvecklare
      • Dataingenjörer
      • Ingenjörer inom molntjänster
      • QA-ingenjörer
      • Övriga
    • Det rådgivande
      • Revision och rådgivning
  • Industrier
    • Fintech & bankverksamhet
    • E-commerce
    • Adtech
    • Hälsoteknik
    • Tillverkning
    • Logistik
    • Fordon
    • IOT
  • Värde för
    • VD OCH KONCERNCHEF
    • CTO
    • Leveranschef
  • Vårt team
  • Fallstudier
  • Vet hur
    • Blogg
    • Möten
    • Webbinarier
    • Resurser
Karriär Ta kontakt med oss
  • Om oss
  • Tjänster
    • Utveckling av programvara
      • Frontend-utveckling
      • Backend-utveckling
    • Staff Augmentation
      • Frontend-utvecklare
      • Backend-utvecklare
      • Dataingenjörer
      • Ingenjörer inom molntjänster
      • QA-ingenjörer
      • Övriga
    • Det rådgivande
      • Revision och rådgivning
  • Värde för
    • VD OCH KONCERNCHEF
    • CTO
    • Leveranschef
  • Vårt team
  • Fallstudier
  • Vet hur
    • Blogg
    • Möten
    • Webbinarier
    • Resurser
Karriär Ta kontakt med oss
Pil tillbaka GÅ TILLBAKA
2019-03-26
Utveckling av programvara

Säkerhet i Javascript-paket

Daniel Grek

För varje dag som går ökar antalet Javascript-paket. Det är resultatet av en gemenskapsaktivitet, som å ena sidan kräver nya lösningar, å andra sidan - genererar dem som en form av självutveckling eller förverkligande. En sådan stor tillväxt öppnar nya dörrar och möjligheter, men medför också fara, som varje utvecklare måste vara medveten om.

I slutet av november 2018 rapporterade GitHub-gemenskapen om en allvarlig sårbarhet i händelse-ström - paket som hjälper till att arbeta med nod evenemang på ett mer effektivt sätt. Det var ganska populärt, eftersom antalet nedladdningar under den specifika perioden uppgick till över 2,2 miljoner per vecka (jämfört med React med 3,7 miljoner). Event-stream, liksom dess beroenden, var beroende av ett annat bibliotek - flatmap-steam, som råkade ha uppdaterats med en skadlig kod med kryptopocket. Det gjorde det möjligt att stjäla privata nycklar och andra detaljer från användarnas konton på maskiner där paketet var buntat.

Så småningom togs flatmap-stream bort från NPM, vilket skapade tidsmässiga problem med många andra bibliotek. I maj samma år hittade gemenskapen en bakdörr inom den getcookie paketet, som också var en del av många andra beroenden. Sådana exempel kan mångfaldigas, vilket visar att det är viktigt att vara uppmärksam på beroenden som installeras i ett projektinte bara från den Javascript perspektiv, men också i ett allmänt sammanhang.

Förlita sig på officiella lösningar och stora grupper

Så långt det är möjligt är det viktigt att förlita sig på officiella lösningar i ditt projekt. De är inte bara mindre sårbara på grund av en bättre utvecklingsprocess. En stor community, som vanligtvis kommer med ett bättre varumärke, hjälper till att identifiera problem mycket snabbare och, vad som är ännu viktigare - hitta bra lösningar.

Använd NPM-trender

Säkerhet JavaScript

Bild 1 Webpack NPM trend.

Diagram

Fig. 2. Händelse-ström NPM trend.

Ibland kanske kunskapen om paketets nuvarande tillstånd inte representerar dess förflutna. En snabb titt på npm:s trenddiagram kan visa dig en faktisk paketutveckling. Det visar inte bara stora toppar, där någon sårbarhet kan hittas, utan det allmänna tillståndet för ett visst paket (OBS: stora toppar på google-trender nära 24 - 30 december representerar semestersäsongen, vilket inte nödvändigtvis representerar ett problem). Som ett exempel, ta en titt på figur 1 - en representativ trend för nedladdning av Webpack per vecka. Du kommer att se en stabil tillväxt utan några brytpunkter, vilket kan tyda på att Webpack är ett stabilt och säkert paket att använda. Å andra sidan ser du i figur 2 en stor nedgång i november, vilket är en tydlig signal om att något fel kan ha hänt under den perioden (vilket vi redan vet är sant).

Revision av beroendeförhållanden

Det bästa och mest tillförlitliga sättet att verifiera statusen för dina beroenden är att utföra en revision. Det här kommandot är nu tillgängligt för både yarn och npm, även om det kräver deras senaste versioner. Det skickar en lista över aktuella beroenden till en lämplig slutpunkt och returnerar information som innehåller deras aktuella sårbarheter och andra detaljer om användning, inklusive hänvisning till dokumentation. (figur 3).

Intressanta uppgifter

Fig. 3. Exempel på resultat av kommandot npm audit. källa: https://docs.npmjs.com

Att hantera beroenden i Javascript är inte en lätt uppgift. Antalet lösningar växer för varje dag, så kom ihåg att välja dina beroenden klokt och noggrant. Fortsätt att granska ditt nuvarande projekt och uppdatera dina paket regelbundet.

För att lära dig mer om javascript-beroenden och hur du löser några av deras problem, vänligen kontrollera den här artikeln.

Källa:

  1. https://github.com/dominictarr/event-stream/issues/116
  2. https://blog.npmjs.org/post/180565383195/details-about-the-event-stream-incident
  3. https://blog.npmjs.org/post/173526807575/reported-malicious-module-getcookies
  4. https://docs.npmjs.com/auditing-package-dependencies-for-security-vulnerabilities
  5. https://docs.npmjs.com/cli/audit
  6. https://yarnpkg.com/lang/en/docs/cli/audit/

Relaterade artiklar

Utveckling av programvara

Bygg framtidssäkrade webbappar: Insikter från The Codest:s expertteam

Upptäck hur The Codest utmärker sig genom att skapa skalbara, interaktiva webbapplikationer med banbrytande teknik som ger sömlösa användarupplevelser på alla plattformar. Läs om hur vår expertis driver digital omvandling och affärsutveckling...

DEKODEST
Utveckling av programvara

Topp 10 Lettlandsbaserade mjukvaruutvecklingsföretag

Läs mer om Lettlands främsta mjukvaruutvecklingsföretag och deras innovativa lösningar i vår senaste artikel. Upptäck hur dessa teknikledare kan hjälpa till att lyfta ditt företag.

thecodest
Lösningar för företag och uppskalningsföretag

Java Software Development Essentials: En guide till framgångsrik outsourcing

Utforska denna viktiga guide om framgångsrik outsourcing av Java-programvaruutveckling för att förbättra effektiviteten, få tillgång till expertis och driva projektframgång med The Codest.

thecodest
Utveckling av programvara

Den ultimata guiden till outsourcing i Polen

Den kraftiga ökningen av outsourcing i Polen drivs av ekonomiska, utbildningsmässiga och tekniska framsteg, vilket främjar IT-tillväxt och ett företagsvänligt klimat.

TheCodest
Lösningar för företag och uppskalningsföretag

Den kompletta guiden till verktyg och tekniker för IT-revision

IT-revisioner säkerställer säkra, effektiva och kompatibla system. Läs mer om hur viktiga de är genom att läsa hela artikeln.

Codest
Jakub Jakubowicz CTO och medgrundare

Prenumerera på vår kunskapsbas och håll dig uppdaterad om expertisen från IT-sektorn.

    Om oss

    The Codest - Internationellt mjukvaruutvecklingsföretag med teknikhubbar i Polen.

    Förenade kungariket - Huvudkontor

    • Kontor 303B, 182-184 High Street North E6 2JA
      London, England

    Polen - Lokala tekniknav

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polen

      Codest

    • Hem
    • Om oss
    • Tjänster
    • Fallstudier
    • Vet hur
    • Karriär
    • Ordbok

      Tjänster

    • Det rådgivande
    • Utveckling av programvara
    • Backend-utveckling
    • Frontend-utveckling
    • Staff Augmentation
    • Backend-utvecklare
    • Ingenjörer inom molntjänster
    • Dataingenjörer
    • Övriga
    • QA-ingenjörer

      Resurser

    • Fakta och myter om att samarbeta med en extern partner för mjukvaruutveckling
    • Från USA till Europa: Varför väljer amerikanska startup-företag att flytta till Europa?
    • Jämförelse av Tech Offshore Development Hubs: Tech Offshore Europa (Polen), ASEAN (Filippinerna), Eurasien (Turkiet)
    • Vilka är de största utmaningarna för CTO:er och CIO:er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Användarvillkor för webbplatsen

    Copyright © 2025 av The Codest. Alla rättigheter reserverade.

    sv_SESwedish
    en_USEnglish de_DEGerman da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek sv_SESwedish