Controllo librerie .net core

Come tenere sotto controllo le librerie dei progetti .Net core.

il
Sviluppatore software, Collaboratore di IProgrammatori

La maggior parte dei progetti .NET prevede l'utilizzo di librerie esterne. In questo articolo vedremo come tenere sotto controllo, sia in termini di aggiornamenti a nuove versioni, sia in termini di controllo vulnerabilità, le librerie usate in un progetto .Net core

Elenco pacchetti

Per sapere quali sono i pacchetti referenziati da un progetto .Net core possiamo utilizzare il seguente comando:

dotnet list package

Tale comando visualizzerà tutti i pacchetti referenziati dal nostro progetto.

Eccone una videata di esempio:

Elenco librerie

Aggiornamenti

Per poter visualizzare i soli pacchetti che presentando degli aggiornamenti, possiamo usare il seguente comando:

dotnet list package --outdated

Con questo comando verranno visualizzati tutte le librerie referenziate dal progetto, con eventuale indicazione della nuova versione:

Versione dei pacchetti

Il comando prevede anche l'utilizzo di opzioni aggiuntive, quali:

  • --highest-patch : visualizza solo i pacchetti che hanno la stessa major e minor version, per cui quelli in cui solo la patch è successiva alla versione installata
  • --highest-minor : visualizzi solo i pacchetti che hanno la stessa major release, per cui quelli con la minor release più aggiornata

Vulnerabilità

Per evidenziare la presenza di pacchetti con delle vulnerabilità è possibile usare il seguente comando:

dotnet list package --vulnerable

Il comando visualizza tutti i pacchetti vulnerabili, con l'indicazione del grado di vulnerabilità:

Vulnerabilità

Dipendenze indirette

I comandi visti in precedenza visualizzano le dipendenze dirette, ovvero i pacchetti che abbiamo referenziato nel nostro progetto. Alcuni pacchetti, però, potrebbero referenziare a loro volta altri pacchetti.

Come possiamo verificare se ci sono delle vulnerabilità (o degli aggiornamenti) nei pacchetti referenziati dalle librerie usate nei nostri pacchetti?

Per farlo basta aggiungere l'opzione --include-transitive e vale sia per gli aggiornamenti che per le vulnerabilità

dipendenze indirette