window.pipedriveLeadboosterConfig = { basis: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', versie: 2, } ;(functie () { var w = venster als (w.LeadBooster) { console.warn('LeadBooster bestaat al') } anders { w.LeadBooster = { q: [], on: functie (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: functie (n) { this.q.push({ t: 't', n: n }) }, } } })() Beveiliging in Javascript-pakketten - The Codest
The Codest
  • Over ons
  • Diensten
    • Software Ontwikkeling
      • Frontend ontwikkeling
      • Backend ontwikkeling
    • Staff Augmentation
      • Frontend ontwikkelaars
      • Backend ontwikkelaars
      • Gegevensingenieurs
      • Cloud Ingenieurs
      • QA ingenieurs
      • Andere
    • Het advies
      • Audit & Consulting
  • Industrie
    • Fintech & Bankieren
    • E-commerce
    • Adtech
    • Gezondheidstechnologie
    • Productie
    • Logistiek
    • Automotive
    • IOT
  • Waarde voor
    • CEO
    • CTO
    • Leveringsmanager
  • Ons team
  • Case Studies
  • Weten hoe
    • Blog
    • Ontmoetingen
    • Webinars
    • Bronnen
Carrière Neem contact op
  • Over ons
  • Diensten
    • Software Ontwikkeling
      • Frontend ontwikkeling
      • Backend ontwikkeling
    • Staff Augmentation
      • Frontend ontwikkelaars
      • Backend ontwikkelaars
      • Gegevensingenieurs
      • Cloud Ingenieurs
      • QA ingenieurs
      • Andere
    • Het advies
      • Audit & Consulting
  • Waarde voor
    • CEO
    • CTO
    • Leveringsmanager
  • Ons team
  • Case Studies
  • Weten hoe
    • Blog
    • Ontmoetingen
    • Webinars
    • Bronnen
Carrière Neem contact op
Pijl terug KEREN TERUG
2019-03-26
Software Ontwikkeling

Beveiliging in Javascript-pakketten

Daniel Grek

Elke dag groeit het aantal Javascript pakketten. Het is het resultaat van de activiteit van een gemeenschap, die aan de ene kant vraagt om nieuwe oplossingen, aan de andere kant - ze genereert als een vorm van zelfontwikkeling of realisatie. Zo'n grote groei opent nieuwe deuren en mogelijkheden, maar brengt ook gevaren met zich mee, waar iedere ontwikkelaar zich bewust van moet zijn.

Eind november 2018 rapporteerde de GitHub-gemeenschap over een ernstige kwetsbaarheid in gebeurtenisstroom - pakket dat helpt bij het werken met knooppunt evenementen efficiënter. Het was behoorlijk populair, omdat het aantal downloads in die periode opliep tot meer dan 2,2 miljoen per week (in vergelijking met React met 3,7 miljoen). Event-stream en de afhankelijkheden ervan waren afhankelijk van een andere bibliotheek. plattegrond-stoom, dat toevallig was bijgewerkt met een crypto-pocket malware. Hiermee konden privésleutels en andere gegevens van gebruikersaccounts worden gestolen op machines waarop het pakket was gebundeld.

Uiteindelijk werd flatmap-stream verwijderd van NPM, wat tijdelijke problemen veroorzaakte met veel andere bibliotheken. In mei van hetzelfde jaar vond de gemeenschap een achterdeur in het getcookie pakket, dat ook deel uitmaakte van veel andere afhankelijkheden. Zulke voorbeelden kunnen vermenigvuldigd worden, wat aantoont dat het belangrijk is om aandacht te besteden aan afhankelijkheden die geïnstalleerd zijn in een projectniet alleen van de Javascript perspectief, maar ook in een algemene context.

Vertrouw op officiële oplossingen en grote gemeenschappen

Het is belangrijk om zoveel mogelijk te vertrouwen op officiële oplossingen in je project. Ze zijn niet alleen minder kwetsbaar vanwege een beter ontwikkelingsproces. Een grote gemeenschap, die meestal gepaard gaat met een beter merk, helpt problemen veel sneller te identificeren en, wat belangrijker is - goede oplossingen te vinden.

NPM-trends gebruiken

Beveiliging JavaScript

Fig. 1 Webpack NPM trend.

Kaart

Fig. 2. Gebeurtenisstroom NPM-trend.

Soms geeft de kennis van de huidige staat van een pakket niet altijd het verleden weer. Een snelle blik op de npm trendgrafiek kan je een actueel pakket laten zien. Het laat niet alleen grote pieken zien, waar een kwetsbaarheid gevonden zou kunnen worden, maar ook de algemene toestand van een bepaald pakket (OPMERKING: grote pieken op google trends in de buurt van 24 - 30 december vertegenwoordigt vakantieseizoen, wat niet noodzakelijkerwijs een probleem vertegenwoordigt). Bekijk als voorbeeld figuur 1 - een representatieve trend van Webpack-downloads per week. U zult een stabiele groei zien zonder breekpunten, wat erop kan wijzen dat Webpack een stabiel en veilig pakket is om te gebruiken. Aan de andere kant vindt u in figuur 2 een grote daling in november, wat een duidelijk signaal is dat er in die periode iets verkeerd zou kunnen zijn gegaan (waarvan we al weten dat het waar is).

Controle op afhankelijkheid

De beste en meest betrouwbare manier om de status van je afhankelijkheden te controleren is door een controle. Dit commando is nu beschikbaar voor zowel yarn als npm, hoewel het de laatste versies vereist. Het stuurt een lijst met huidige afhankelijkheden naar een geschikt eindpunt en retourneert informatie met hun huidige kwetsbaarheden en andere details over het gebruik, inclusief verwijzingen naar documentatie. (figuur3).

Interessante gegevens

Fig. 3. Voorbeeld van het resultaat van het npm audit commando. Bron: https://docs.npmjs.com

Het beheren van afhankelijkheden in Javascript is geen eenvoudige taak. Het aantal oplossingen groeit elke dag, dus vergeet niet om je afhankelijkheden verstandig en zorgvuldig te kiezen. Blijf je huidige project controleren en werk je pakketten regelmatig bij.

Om meer te leren over javascript afhankelijkheden en hoe je sommige problemen kunt oplossen, bekijk dan dit artikel.

Bron:

  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/

Verwante artikelen

Software Ontwikkeling

Bouw Toekomstbestendige Web Apps: Inzichten van The Codest's Expert Team

Ontdek hoe The Codest uitblinkt in het creëren van schaalbare, interactieve webapplicaties met geavanceerde technologieën, het leveren van naadloze gebruikerservaringen op alle platforms. Ontdek hoe onze expertise digitale transformatie en business...

DE BESTE
Software Ontwikkeling

Top 10 in Letland gevestigde bedrijven voor softwareontwikkeling

Lees meer over de beste softwareontwikkelingsbedrijven van Letland en hun innovatieve oplossingen in ons nieuwste artikel. Ontdek hoe deze technologieleiders uw bedrijf kunnen helpen verbeteren.

thecodest
Oplossingen voor ondernemingen en schaalvergroting

Essentiële Java-softwareontwikkeling: Een gids voor succesvol uitbesteden

Verken deze essentiële gids over succesvolle outsourcing Java-softwareontwikkeling om de efficiëntie te verbeteren, toegang te krijgen tot expertise en projectsucces te stimuleren met The Codest.

thecodest
Software Ontwikkeling

De ultieme gids voor outsourcing in Polen

De sterke groei van outsourcing in Polen wordt gedreven door economische, educatieve en technologische vooruitgang, die IT-groei en een bedrijfsvriendelijk klimaat stimuleert.

DeCodest
Oplossingen voor ondernemingen en schaalvergroting

De complete gids voor IT-auditmiddelen en -technieken

IT-audits zorgen voor veilige, efficiënte en compliant systemen. Lees het volledige artikel om meer te weten te komen over het belang ervan.

The Codest
Jakub Jakubowicz CTO & medeoprichter

Abonneer je op onze kennisbank en blijf op de hoogte van de expertise uit de IT-sector.

    Over ons

    The Codest - Internationaal softwareontwikkelingsbedrijf met technische hubs in Polen.

    Verenigd Koninkrijk - Hoofdkantoor

    • Kantoor 303B, 182-184 High Street North E6 2JA
      Londen, Engeland

    Polen - Lokale technologieknooppunten

    • Fabryczna kantorenpark, Aleja
      Pokoju 18, 31-564 Krakau
    • Hersenambassade, Konstruktorska
      11, 02-673 Warschau, Polen

      The Codest

    • Home
    • Over ons
    • Diensten
    • Case Studies
    • Weten hoe
    • Carrière
    • Woordenboek

      Diensten

    • Het advies
    • Software Ontwikkeling
    • Backend ontwikkeling
    • Frontend ontwikkeling
    • Staff Augmentation
    • Backend ontwikkelaars
    • Cloud Ingenieurs
    • Gegevensingenieurs
    • Andere
    • QA ingenieurs

      Bronnen

    • Feiten en fabels over samenwerken met een externe partner voor softwareontwikkeling
    • Van de VS naar Europa: Waarom Amerikaanse startups besluiten naar Europa te verhuizen
    • Tech Offshore Ontwikkelingshubs Vergelijking: Tech Offshore Europa (Polen), ASEAN (Filippijnen), Eurazië (Turkije)
    • Wat zijn de grootste uitdagingen voor CTO's en CIO's?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Gebruiksvoorwaarden website

    Copyright © 2025 door The Codest. Alle rechten voorbehouden.

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