Dipendo da PHP CLI per tutti i tipi di "logica aziendale" personale e (si spera, presto) professionale / mission-critical. (Potrebbe trattarsi di qualsiasi altra lingua e lo stesso identico problema sarebbe ancora presente; Sto solo affermando ciò che uso personalmente per motivi di contesto.)
Nella misura più ampia possibile, codice sempre tutto su il mio. Solo quando è assolutamente necessario ricorro, con riluttanza, all'uso di una libreria di terze parti. Per alcune cose, questo è semplicemente necessario. Ad esempio, l'analisi della posta elettronica e altre cose molto complicate come questa.
Per gestire tali librerie di terze parti, utilizzo PHP Composer. È un gestore di librerie per PHP. È in grado di scaricare librerie e le loro dipendenze e aggiornarle con comandi simili ad altri "gestori di pacchetti". In un senso pratico, questo è molto più bello che tenerne traccia manualmente e scaricare manualmente file ZIP e decomprimerli e affrontare ogni tipo di problema. Almeno fa risparmiare un sacco di mal di testa pratici.
Tuttavia , il problema di sicurezza più fondamentale persiste ancora: non ho idea di cosa questo "installato" il codice contiene, né so cosa viene aggiunto / modificato con ogni aggiornamento. Uno degli autori delle biblioteche avrebbe potuto essere facilmente compromesso un giorno quando il mio Composer recupera gli aggiornamenti, facendo sì che i miei script PHP CLI inviassero improvvisamente il mio portafoglio Bitcoin.dat a qualche server remoto, installassero un RAT / trojan sulla mia macchina o anche peggio. In effetti, potrebbe già essere successo, e io non sarei più saggio. Semplicemente non ne ho idea. Logicamente non ne ho idea.
La mia base di codice è di circa 15.000 righe in totale. Mi ci vuole più di un anno per esaminare meticolosamente quella base di codice. E questo è il codice che io ho scritto e che conosco intimamente ...
Il mio albero di directory "Composer" attualmente è a oltre 120.000 righe di codice . E questo è per il numero minimo di librerie PHP cruciali di cui ho bisogno. Io ne uso pochissimi, ma hanno varie dipendenze e tendono ad essere complessivamente molto gonfio / gonfio rispetto al mio codice.
Come potrei mai "controllare" tutto questo ?! Semplicemente non succederà. Ho "zona fuori" molto poco dopo aver tentato. Non so nemmeno come farò a superare un altro "giro veterinario" del mio codice, figuriamoci questo 10 volte più grande, codificato da altre persone.
Quando le persone dicono che è un "must" per "controllare il codice di terze parti", cosa intendono esattamente? Sono anche d'accordo che è un "must", ma poi c'è la fastidiosa realtà. Semplicemente non avrò mai il tempo e l'energia per farlo. Inoltre, ovviamente non ho i soldi per pagare qualcun altro per farlo.
Ho passato innumerevoli ore cercando di imparare a conoscere Docker e vedere se c'era un modo in cui potevo "incapsulare" queste librerie di terze parti non affidabili in qualche modo, ma è una battaglia persa. Ho trovato assolutamente impossibile farlo funzionare, o avere una qualsiasi delle mie molte domande in merito alla risposta. Non penso nemmeno che sia possibile nel modo in cui lo immagino.