window.pipedriveLeadboosterConfig = { base: pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster on jo olemassa') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Turvallisuus Javascript-paketeissa - The Codest
Codest
  • Tietoa meistä
  • Palvelut
    • Ohjelmistokehitys
      • Frontend-kehitys
      • Backend-kehitys
    • Staff Augmentation
      • Frontend-kehittäjät
      • Backend-kehittäjät
      • Tietoinsinöörit
      • Pilvi-insinöörit
      • QA insinöörit
      • Muut
    • Se neuvoa-antava
      • Tilintarkastus & konsultointi
  • Toimialat
    • Fintech & pankkitoiminta
    • E-commerce
    • Adtech
    • Terveysteknologia
    • Valmistus
    • Logistiikka
    • Autoteollisuus
    • IOT
  • Arvo
    • TOIMITUSJOHTAJA
    • CTO
    • Toimituspäällikkö
  • Tiimimme
  • Tapaustutkimukset
  • Tiedä miten
    • Blogi
    • Tapaamiset
    • Webinaarit
    • Resurssit
Työurat Ota yhteyttä
  • Tietoa meistä
  • Palvelut
    • Ohjelmistokehitys
      • Frontend-kehitys
      • Backend-kehitys
    • Staff Augmentation
      • Frontend-kehittäjät
      • Backend-kehittäjät
      • Tietoinsinöörit
      • Pilvi-insinöörit
      • QA insinöörit
      • Muut
    • Se neuvoa-antava
      • Tilintarkastus & konsultointi
  • Arvo
    • TOIMITUSJOHTAJA
    • CTO
    • Toimituspäällikkö
  • Tiimimme
  • Tapaustutkimukset
  • Tiedä miten
    • Blogi
    • Tapaamiset
    • Webinaarit
    • Resurssit
Työurat Ota yhteyttä
Takaisin nuoli PALAA TAAKSE
2019-03-26
Ohjelmistokehitys

Turvallisuus Javascript-paketeissa

Daniel Grek

Javascript-pakettien määrä kasvaa joka päivä. Se on seurausta yhteisön toiminnasta, joka toisaalta vaatii uusia ratkaisuja, toisaalta tuottaa niitä itsensä kehittämisen tai toteuttamisen muodossa. Näin suuri kasvu avaa uusia ovia ja mahdollisuuksia, mutta tuo mukanaan myös vaaran, josta jokaisen kehittäjän on oltava tietoinen.

Marraskuun 2018 lopulla GitHub-yhteisö raportoi vakavasta haavoittuvuudesta GitHubin event-stream - paketti, joka auttaa työskentelemään solmu tapahtumia tehokkaammin. Se oli melko suosittu, sillä latausten määrä kyseisenä ajanjaksona oli yli 2,2 miljoonaa viikossa (verrattuna React:hen, jonka latausmäärä oli 3,7 miljoonaa). Event-stream ja sen riippuvuudet olivat riippuvaisia toisesta kirjastosta - flatmap-steam, joka sattui olemaan päivitetty kryptotaskun haittaohjelmalla. Se mahdollisti yksityisten avainten ja muiden tietojen varastamisen käyttäjien tileiltä koneilta, joihin paketti oli niputettu.

Lopulta flatmap-stream poistettiin NPM:stä, mikä aiheutti ajallisia ongelmia monien muiden kirjastojen kanssa. Saman vuoden toukokuussa yhteisö löysi takaoven tiedostoista getcookie paketti, joka oli osa monia muitakin riippuvuuksia. Tällaisia esimerkkejä voi olla vaikka kuinka monta, mikä osoittaa, että on tärkeää kiinnittää huomiota riippuvuuksiin, jotka on asennettu osaksi projekti, ei ainoastaan Javascript näkökulmasta, mutta myös yleisessä kontekstissa.

Luotetaan virallisiin ratkaisuihin ja laajoihin yhteisöihin

On tärkeää, että projektissasi luotat mahdollisuuksien mukaan virallisiin ratkaisuihin. Ne eivät ole vähemmän haavoittuvia vain siksi, että niiden kehitysprosessi on parempi. Suuri yhteisö, johon yleensä liittyy parempi brändi, auttaa tunnistamaan ongelmat paljon nopeammin ja - mikä tärkeintä - löytämään hyviä ratkaisuja.

Käytä NPM-trendejä

Turvallisuus JavaScript

Kuva 1 Webpackin NPM-trendi.

Kaavio

Kuva 2. Tapahtumavirran NPM-suuntaus.

Joskus tieto paketin nykytilasta ei välttämättä edusta sen menneisyyttä. Nopea vilkaisu npm trends -kaavioon voi näyttää todellisen paketin trendit. Se ei näytä vain suuria huippuja, joissa jokin haavoittuvuus voisi löytyä, vaan tietyn paketin yleisen tilan (HUOMAUTUS: suuret huiput google trendsissä lähellä 24.-30. joulukuuta edustavat lomasesonkia, joka ei välttämättä edusta ongelmaa). Katso esimerkiksi kuviota 1, joka kuvaa Webpackin viikoittaista lataustrendiä. Näet vakaan kasvun ilman katkeamispisteitä, mikä voi viitata siihen, että Webpack on vakaa ja turvallinen paketti käytettäväksi. Toisaalta kuviossa 2 näet suuren pudotuksen marraskuussa, mikä on selvä merkki siitä, että kyseisenä ajanjaksona on voinut tapahtua jotain väärää (minkä me jo tiedämme olevan totta).

Riippuvuustarkastus

Paras ja luotettavin tapa tarkistaa riippuvuussuhteiden tila on suorittaa riippuvuusanalyysi tarkastus. Tämä komento on nyt käytettävissä sekä yarnissa että npm:ssä, vaikka se vaatii niiden uusimmat versiot. Se lähettää luettelon nykyisistä riippuvuuksista oikeaan päätepisteeseen ja palauttaa tiedot, jotka sisältävät niiden nykyiset haavoittuvuudet ja muut käyttötiedot, mukaan lukien viittaukset dokumentaatioon. (kuva3).

Mielenkiintoisia tietoja

Kuva 3. Esimerkki npm audit -komennon tuloksesta. Lähde: https://docs.npmjs.com

Riippuvuuksien hallinta Javascriptissä ei ole helppo tehtävä. Ratkaisujen määrä kasvaa päivittäin, joten muista valita riippuvuudet viisaasti ja huolellisesti. Tarkasta jatkuvasti nykyinen projektisi ja päivitä pakettisi säännöllisesti.

Lisätietoja javascript-riippuvuuksista ja niiden aiheuttamien ongelmien ratkaisemisesta, tarkista tämä artikkeli.

Lähde:

  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/

Aiheeseen liittyvät artikkelit

Ohjelmistokehitys

Tulevaisuuden web-sovellusten rakentaminen: The Codest:n asiantuntijatiimin näkemyksiä

Tutustu siihen, miten The Codest loistaa skaalautuvien, interaktiivisten verkkosovellusten luomisessa huipputeknologian avulla ja tarjoaa saumattomia käyttäjäkokemuksia kaikilla alustoilla. Lue, miten asiantuntemuksemme edistää digitaalista muutosta ja liiketoimintaa...

THECODEST
Ohjelmistokehitys

Top 10 Latviassa toimivaa ohjelmistokehitysyritystä

Tutustu Latvian parhaisiin ohjelmistokehitysyrityksiin ja niiden innovatiivisiin ratkaisuihin uusimmassa artikkelissamme. Tutustu siihen, miten nämä teknologiajohtajat voivat auttaa nostamaan liiketoimintaasi.

thecodest
Yritys- ja skaalausratkaisut

Java-ohjelmistokehityksen perusteet: A Guide to Outsourcing Successfully

Tutustu tähän keskeiseen oppaaseen Java-ohjelmistokehityksen onnistuneesta ulkoistamisesta tehokkuuden parantamiseksi, asiantuntemuksen saamiseksi ja projektin onnistumiseksi The Codestin avulla.

thecodest
Ohjelmistokehitys

Perimmäinen opas ulkoistamiseen Puolassa

Ulkoistamisen lisääntyminen Puolassa johtuu taloudellisesta, koulutuksellisesta ja teknologisesta kehityksestä, joka edistää tietotekniikan kasvua ja yritysystävällistä ilmapiiriä.

TheCodest
Yritys- ja skaalausratkaisut

Täydellinen opas IT-tarkastustyökaluihin ja -tekniikoihin

Tietotekniikan tarkastuksilla varmistetaan turvalliset, tehokkaat ja vaatimustenmukaiset järjestelmät. Lue lisää niiden merkityksestä lukemalla koko artikkeli.

Codest
Jakub Jakubowicz teknologiajohtaja ja toinen perustaja

Tilaa tietopankkimme ja pysy ajan tasalla IT-alan asiantuntemuksesta.

    Tietoa meistä

    The Codest - Kansainvälinen ohjelmistokehitysyritys, jolla on teknologiakeskuksia Puolassa.

    Yhdistynyt kuningaskunta - pääkonttori

    • Toimisto 303B, 182-184 High Street North E6 2JA
      Lontoo, Englanti

    Puola - Paikalliset teknologiakeskukset

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Krakova
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsova, Puola

      Codest

    • Etusivu
    • Tietoa meistä
    • Palvelut
    • Tapaustutkimukset
    • Tiedä miten
    • Työurat
    • Sanakirja

      Palvelut

    • Se neuvoa-antava
    • Ohjelmistokehitys
    • Backend-kehitys
    • Frontend-kehitys
    • Staff Augmentation
    • Backend-kehittäjät
    • Pilvi-insinöörit
    • Tietoinsinöörit
    • Muut
    • QA insinöörit

      Resurssit

    • Faktoja ja myyttejä yhteistyöstä ulkoisen ohjelmistokehityskumppanin kanssa
    • Yhdysvalloista Eurooppaan: Miksi amerikkalaiset startup-yritykset päättävät muuttaa Eurooppaan?
    • Tech Offshore -kehityskeskusten vertailu: Tech Offshore Eurooppa (Puola), ASEAN (Filippiinit), Euraasia (Turkki).
    • Mitkä ovat teknologiajohtajien ja tietohallintojohtajien tärkeimmät haasteet?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Verkkosivuston käyttöehdot

    Tekijänoikeus © 2025 by The Codest. Kaikki oikeudet pidätetään.

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