window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = finestra if (w.LeadBooster) { console.warn('LeadBooster esiste già') } 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 }) }, } } })() Sicurezza nei pacchetti Javascript - The Codest
The Codest
  • Chi siamo
  • Servizi
    • Sviluppo di software
      • Sviluppo Frontend
      • Sviluppo backend
    • Staff Augmentation
      • Sviluppatori Frontend
      • Sviluppatori backend
      • Ingegneri dei dati
      • Ingegneri del cloud
      • Ingegneri QA
      • Altro
    • Consulenza
      • Audit e consulenza
  • Industrie
    • Fintech e banche
    • E-commerce
    • Adtech
    • Tecnologia della salute
    • Produzione
    • Logistica
    • Automotive
    • IOT
  • Valore per
    • CEO
    • CTO
    • Responsabile della consegna
  • Il nostro team
  • Case Studies
  • Sapere come
    • Blog
    • Incontri
    • Webinar
    • Risorse
Carriera Contattate
  • Chi siamo
  • Servizi
    • Sviluppo di software
      • Sviluppo Frontend
      • Sviluppo backend
    • Staff Augmentation
      • Sviluppatori Frontend
      • Sviluppatori backend
      • Ingegneri dei dati
      • Ingegneri del cloud
      • Ingegneri QA
      • Altro
    • Consulenza
      • Audit e consulenza
  • Valore per
    • CEO
    • CTO
    • Responsabile della consegna
  • Il nostro team
  • Case Studies
  • Sapere come
    • Blog
    • Incontri
    • Webinar
    • Risorse
Carriera Contattate
Freccia indietro TORNA INDIETRO
2019-03-26
Sviluppo di software

Sicurezza nei pacchetti Javascript

Daniel Grek

Ogni giorno la quantità di pacchetti Javascript cresce. È il risultato dell'attività di una comunità che, da un lato, richiede nuove soluzioni, dall'altro le genera come forma di autosviluppo o realizzazione. Una crescita così ampia apre nuove porte e possibilità, ma comporta anche dei pericoli, di cui ogni sviluppatore deve essere consapevole.

A fine novembre 2018, la comunità di GitHub ha segnalato una grave vulnerabilità in flusso di eventi - che aiuta a lavorare con nodo eventi in modo più efficiente. Era abbastanza popolare, dato che la quantità di download in quel periodo specifico raggiungeva oltre 2,2 milioni a settimana (rispetto a React con 3,7 milioni). Event-stream, così come le sue dipendenze, dipendevano da un'altra libreria, la mappa piatta-vapore, che è stato aggiornato con un malware crypto-pocket. Esso consentiva di rubare chiavi private e altri dettagli dagli account degli utenti sulle macchine in cui il pacchetto era stato distribuito.

Alla fine, flatmap-stream è stato rimosso da NPM, creando problemi temporali con molte altre librerie. Nel maggio dello stesso anno, la comunità ha trovato una backdoor all'interno di il getcookie che faceva parte anche di molte altre dipendenze. Questi esempi si possono moltiplicare, a dimostrazione del fatto che è importante prestare attenzione alle dipendenze installate in un file progetto, non solo dalla Javascript prospettiva, ma anche in un contesto generale.

Affidarsi a soluzioni ufficiali e a grandi comunità

Per quanto possibile, è importante affidarsi a soluzioni ufficiali nel vostro progetto. Non sono solo meno vulnerabili grazie a un processo di sviluppo migliore. Una grande comunità, che di solito è accompagnata da un marchio migliore, aiuta a identificare i problemi molto più velocemente e, cosa più importante, a trovare buone soluzioni.

Utilizzare le tendenze NPM

Sicurezza JavaScript

Fig. 1 Tendenza di Webpack NPM.

Grafico

Fig. 2. Tendenza NPM event-stream.

A volte, la conoscenza dello stato attuale di un pacchetto può non rappresentare il suo passato. Una rapida occhiata al grafico delle tendenze di npm può mostrare l'andamento effettivo di un pacchetto. Mostrerà non solo i grandi picchi, dove potrebbe essere trovata qualche vulnerabilità, ma anche la condizione generale di un dato pacchetto (NOTA: i grandi picchi su google trends vicino al 24-30 dicembre rappresentano la stagione delle vacanze, che potrebbe non rappresentare necessariamente un problema). A titolo di esempio, date un'occhiata alla figura 1, che rappresenta l'andamento dei download di Webpack per settimana. Si può notare una crescita stabile senza punti di rottura, il che può suggerire che Webpack è un pacchetto stabile e sicuro da usare. D'altro canto, nella figura 2 si può notare un forte calo nel mese di novembre, che è un chiaro segnale che qualcosa di sbagliato potrebbe essere accaduto in quel periodo (cosa che sappiamo già essere vera).

Audit sulle dipendenze

Il modo migliore e più affidabile per verificare lo stato delle dipendenze è quello di eseguire un'analisi di tipo revisione contabile. Questo comando è ora disponibile in modo nativo sia per yarn che per npm, anche se richiede le loro ultime versioni. Invia un elenco di dipendenze correnti a un endpoint appropriato e restituisce informazioni contenenti le loro vulnerabilità attuali e altri dettagli di utilizzo, compresi i riferimenti alla documentazione. (figura3).

Dati interessanti

Fig. 3. Esempio di risultato del comando npm audit. Fonte: https://docs.npmjs.com

La gestione delle dipendenze in Javascript non è un compito facile. Il numero di soluzioni cresce di giorno in giorno, quindi ricordate di scegliere le vostre dipendenze con saggezza e attenzione. Continuate a controllare il vostro progetto attuale e aggiornate regolarmente i pacchetti.

Per saperne di più sulle dipendenze javascript e su come risolvere alcuni dei loro problemi, controllare questo articolo.

Fonte:

  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/

Articoli correlati

Sviluppo di software

Costruire applicazioni web a prova di futuro: le intuizioni del team di esperti di The Codest

Scoprite come The Codest eccelle nella creazione di applicazioni web scalabili e interattive con tecnologie all'avanguardia, offrendo esperienze utente senza soluzione di continuità su tutte le piattaforme. Scoprite come la nostra esperienza favorisce la trasformazione digitale e il business...

IL CANCRO
Sviluppo di software

Le 10 principali aziende di sviluppo software con sede in Lettonia

Scoprite le migliori aziende di sviluppo software della Lettonia e le loro soluzioni innovative nel nostro ultimo articolo. Scoprite come questi leader tecnologici possono aiutarvi a migliorare la vostra attività.

thecodest
Soluzioni per aziende e scaleup

Essenziali di sviluppo software Java: Guida all'outsourcing di successo

Esplorate questa guida essenziale sullo sviluppo di software Java con successo outsourcing per migliorare l'efficienza, accedere alle competenze e guidare il successo del progetto con The Codest.

thecodest
Sviluppo di software

La guida definitiva all'outsourcing in Polonia

L'aumento di outsourcing in Polonia è guidato dai progressi economici, educativi e tecnologici, che favoriscono la crescita dell'IT e un clima favorevole alle imprese.

IlCodesto
Soluzioni per aziende e scaleup

Guida completa agli strumenti e alle tecniche di audit IT

Gli audit IT garantiscono sistemi sicuri, efficienti e conformi. Per saperne di più sulla loro importanza, leggete l'articolo completo.

The Codest
Jakub Jakubowicz CTO e cofondatore

Iscrivetevi alla nostra knowledge base e rimanete aggiornati sulle competenze del settore IT.

    Chi siamo

    The Codest - Società internazionale di sviluppo software con centri tecnologici in Polonia.

    Regno Unito - Sede centrale

    • Ufficio 303B, 182-184 High Street North E6 2JA
      Londra, Inghilterra

    Polonia - Poli tecnologici locali

    • Parco uffici Fabryczna, Aleja
      Pokoju 18, 31-564 Cracovia
    • Ambasciata del cervello, Konstruktorska
      11, 02-673 Varsavia, Polonia

      The Codest

    • Casa
    • Chi siamo
    • Servizi
    • Case Studies
    • Sapere come
    • Carriera
    • Dizionario

      Servizi

    • Consulenza
    • Sviluppo di software
    • Sviluppo backend
    • Sviluppo Frontend
    • Staff Augmentation
    • Sviluppatori backend
    • Ingegneri del cloud
    • Ingegneri dei dati
    • Altro
    • Ingegneri QA

      Risorse

    • Fatti e miti sulla collaborazione con un partner esterno per lo sviluppo di software
    • Dagli Stati Uniti all'Europa: Perché le startup americane decidono di trasferirsi in Europa
    • Confronto tra gli hub di sviluppo Tech Offshore: Tech Offshore Europa (Polonia), ASEAN (Filippine), Eurasia (Turchia)
    • Quali sono le principali sfide di CTO e CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Condizioni di utilizzo del sito web

    Copyright © 2025 di The Codest. Tutti i diritti riservati.

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