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:
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:
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à:
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à