Populaire onderwerpen
#
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.
Minder is veiliger: hoe Obsidian het risico van aanvallen op de toeleveringsketen vermindert
Aanvallen op de toeleveringsketen zijn kwaadaardige updates die zich een weg banen in open source code die door veel apps wordt gebruikt. Hier is hoe we Obsidian ontwerpen om ervoor te zorgen dat de app een veilige en privé omgeving voor je gedachten is.
Minder is veiliger
Het mag voor de hand liggend klinken, maar de belangrijkste manier waarop we het risico van aanvallen op de toeleveringsketen verminderen, is door niet afhankelijk te zijn van code van derden. Obsidian heeft een laag aantal afhankelijkheden in vergelijking met andere apps in onze categorie. Zie een lijst van open source bibliotheken op onze Credits-pagina.
Functies zoals Bases en Canvas zijn vanaf nul geïmplementeerd in plaats van kant-en-klare bibliotheken te importeren. Dit geeft ons volledige controle over wat er in Obsidian draait.
- Voor kleine hulpfuncties implementeren we ze bijna altijd opnieuw in onze code.
- Voor middelgrote modules forkeren we ze en houden ze binnen onze codebase als de licenties het toestaan.
- Voor grote bibliotheken zoals pdf.js, Mermaid en MathJax, voegen we bekende, versie-gebonden bestanden toe en upgraden we alleen af en toe, of wanneer beveiligingsfixes beschikbaar komen. We lezen release-opmerkingen, kijken naar upstream-wijzigingen en testen grondig voordat we overschakelen.
Deze aanpak houdt onze afhankelijkheidsgrafiek ondiep met weinig sub-afhankelijkheden. Een kleiner oppervlak verlaagt de kans dat een kwaadaardige update erdoorheen glipt.
Wat er daadwerkelijk in de app zit
Slechts een handvol pakketten maakt deel uit van de app die je draait, bijvoorbeeld Electron, CodeMirror, moment.js. De andere pakketten helpen ons de app te bouwen en worden nooit naar gebruikers verzonden, bijvoorbeeld esbuild of eslint.
Versie-pinning en lockfiles
Alle afhankelijkheden zijn strikt versie-gebonden en gecommitteerd met een lockfile. De lockfile is de bron van waarheid voor builds, zodat we deterministische installaties krijgen. Dit geeft ons een duidelijke audittrail bij het beoordelen van wijzigingen.
We voeren geen postinstall-scripts uit. Dit voorkomt dat pakketten willekeurige code uitvoeren tijdens de installatie.
Langzame, doordachte upgrades
Wanneer we afhankelijkheidsupdates doen,:
...

Boven
Positie
Favorieten