Argomenti di tendenza
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Meno è più sicuro: come Obsidian riduce il rischio di attacchi alla catena di fornitura
Gli attacchi alla catena di fornitura sono aggiornamenti malevoli che si infiltrano nel codice open source utilizzato da molte app. Ecco come progettiamo Obsidian per garantire che l'app sia un ambiente sicuro e privato per i tuoi pensieri.
Meno è più sicuro
Può sembrare ovvio, ma il modo principale in cui riduciamo il rischio di attacchi alla catena di fornitura è evitare di dipendere da codice di terze parti. Obsidian ha un numero ridotto di dipendenze rispetto ad altre app nella nostra categoria. Consulta un elenco delle librerie open source nella nostra pagina Crediti.
Funzionalità come Bases e Canvas sono state implementate da zero invece di importare librerie pronte all'uso. Questo ci dà il pieno controllo su ciò che viene eseguito in Obsidian.
- Per piccole funzioni di utilità, quasi sempre le re-implementiamo nel nostro codice.
- Per moduli medi, li fork-iamo e li manteniamo all'interno del nostro codice se le licenze lo consentono.
- Per grandi librerie come pdf.js, Mermaid e MathJax, includiamo file noti e bloccati per versione e aggiorniamo solo occasionalmente, o quando arrivano correzioni di sicurezza. Leggiamo le note di rilascio, guardiamo i cambiamenti upstream e testiamo a fondo prima di effettuare il passaggio.
Questo approccio mantiene il nostro grafo delle dipendenze poco profondo con poche sotto-dipendenze. Una superficie più piccola riduce la possibilità che un aggiornamento malevolo sfugga.
Cosa viene effettivamente spedito nell'app
Solo un numero limitato di pacchetti fa parte dell'app che esegui, ad esempio Electron, CodeMirror, moment.js. Gli altri pacchetti ci aiutano a costruire l'app e non vengono mai spediti agli utenti, ad esempio esbuild o eslint.
Blocco delle versioni e lockfile
Tutte le dipendenze sono rigorosamente bloccate per versione e impegnate con un lockfile. Il lockfile è la fonte di verità per le build, quindi otteniamo installazioni deterministiche. Questo ci fornisce una chiara traccia di audit quando rivediamo le modifiche.
Non eseguiamo script postinstall. Questo impedisce ai pacchetti di eseguire codice arbitrario durante l'installazione.
Aggiornamenti lenti e deliberati
Quando facciamo aggiornamenti delle dipendenze, noi:
...

Principali
Ranking
Preferiti