NyheterUtviklereEnterpriseBlockchain ExplainedBegivenheter og konferanserPresseNyhetsbrev
Contents
- 1 Hvordan unngå å laste opp din private nøkkel til GitHub: Tilnærminger for å forhindre at hemmelighetene dine blir offentlige
- 1.0.0.1 Tilnærming 1: Using.gitignore, a.env-fil og dotenv (forutsetter at vi utvikler ved hjelp av mønstre som er felles for Solidity og en arbeidsflyt ved hjelp av Trøffel og MetaMask, selv om dette er generalisert)
- 1.0.0.2 Tilnærming 2: Bruk av krypterte hemmeligheter i GitHub Actions (passende for de som er kjent med GitHub på organisasjonsnivå, med de nødvendige tillatelsene og GitHub-kontoen for å kunne praktisere disse).
- 1.0.0.3 Konklusjon
- 1.0.1 Hvordan lage et vellykket Blockchain-produkt
- 1.0.2 Hvordan sette opp og kjøre en Ethereum-node
- 1.0.3 Hvordan lage din egen Ethereum API
- 1.0.4 Hvordan lage et sosialt token
- 1.0.5 Bruke sikkerhetsverktøy i smart kontraktutvikling
- 1.0.6 Fremtidens økonomi: digitale eiendeler og deFi
Abonner på vårt nyhetsbrev.
Epostadresse
Vi respekterer personvernet ditt
HjemBloggBlockchain utvikling
Hvordan unngå å laste opp din private nøkkel til GitHub: Tilnærminger for å forhindre at hemmelighetene dine blir offentlige
Hold dine private nøkler og API-hemmeligheter trygge mens du utvikler smarte kontrakter av ConsenSys 7. oktober 2020 Publisert 7. oktober 2020
Av Coogan Brennan og Thomas Hay
Noen ganger i året, en historie gjør at de runder av en uheldig Ethereum-utvikler som, mens han bygde et blockchain-prosjekt, ved et uhell lastet opp sin superhemmelige mnemoniske frase – som ble brukt til å generere lommeboken – til sin offentlige GitHub-side. I løpet av få sekunder har lommeboken deres blitt “hacket” og tømt for pengene.
Ingenting har virkelig blitt hacket, skjønt: Transaksjonen som overfører alle eiendeler til “hacker” -adressen, er perfekt. Derfor behandler og aksepterer nettverket det. Nettverket bryr seg ikke hvem som signerer transaksjonen eller hva intensjonen deres var, bare at kryptografien er lyd. Nettverket antar at alle som har en mnemonic, eller de genererte private nøklene, er den rettmessige eieren av eiendelene i de tilsvarende kontoene..
Det er kald trøst for personen som har mistet kontrollen over lommeboken. Den umiddelbare reaksjonen er å tro at lommeboken deres har blitt hacket. Det er forståelig! Men før du kommer til det punktet hvor du må lure på om lommeboken din var kompromittert, er det greit å sjekke at du ikke er i ferd med å uforvarende avsløre din private informasjon.
Her er noen endelige trinn for å unngå å komme i en lignende situasjon. (Bonuspoeng: teknikkene beskrevet i denne artikkelen er god sikkerhetshygiene for ethvert prosjekt, blockchain eller ikke!)
Nedenfor skisserer vi to tilnærminger til hvordan du IKKE publiserer hemmeligheter (API-nøkler, private nøkler, frøfraser, databasepassord) til GitHub-depotet ditt:
Tilnærming 1: Using.gitignore, a.env-fil og dotenv (forutsetter at vi utvikler ved hjelp av mønstre som er felles for Solidity og en arbeidsflyt ved hjelp av Trøffel og MetaMask, selv om dette er generalisert)
Trinn 1: Les dokumentasjonen på.gitignore. Seriøst, les hele siden med dokumentasjon.
A.gitignore-filen lar deg spesifisere filer som ikke skal spores. Du vil opprette en.gitignore-fil i katalogen du utvikler prosjektet i. Innenfor den filen vil du spesifisere filene du ikke vil spore. Dokumentasjonen vil forklare deg de forskjellige tekstmønstrene du kan bruke for å ikke spore (eller spore) filer.
Her er et eksempel på en:
I linje 20 har vi lagt til en.env-fil
Trinn 2: Sett opp en.env-fil for å lagre miljøvariablene
Miljøvariabler, opprinnelig implementert i versjon 7 Unix (utgitt i 1979 av Bell Labs, Klikk her for en kopi av manualen) endre prosessen (e) som et databehandlingssystem kjører. Miljøvariabler er implementert i alle operativsystemene som studentene våre bruker til å bygge dApps på Ethereum (Unix, Linux, MacOS, Windows). I dette tilfellet blir hemmelighetene dine behandlet som miljøvariabler, og plassert i en fil som heter.env.
Her er et eksempel på a.env-fil
Trinn 3: Les dokumentasjonen om dotenv. Installer dotenv.
Dotenv “Er en nullavhengighetsmodul som laster miljøvariabler fra a.env-filen til process.env.” (innhentet fra https://www.npmjs.com/package/dotenv 25. september 2020)
nstall dotenv ved hjelp av npm installer dotenv
Trinn 4: Legg til krav (‘dotenv’). Config () til starten av søknaden. Bruk process.env i denne filen.
Kodeeksempel: application.js
// Dette er toppen av application.js krever (‘dotenv’). Config () // Dette er et eksempel på process.env senere i filen var PrivateKey = new Buffer (process.env. ["PRIVATE_KEY"], "hex")) // Her er et annet eksempel på bruk av process.env const APIKey = process.env.API_KEY; Kodespråk: JavaScript (javascript)
Trinn 5: Hvis du vil publisere til et eksisterende GitHub-arkiv eller skyve til et nytt GitHub-lager, kan du gjøre det. Dine hemmeligheter vises ikke som en del av GitHub-depotet ditt.
Videoopplæring fra en annen kilde: Daniel Schiffman fra Kodetoget gir en videoopplæring ved hjelp av et værprogram i videoen sin 3.4 Skjule API-nøkler med miljøvariabler (dotenv) og Pushing Code til GitHub.
Tekstopplæring fra en annen kilde: Mason’s Blog har en opplæring som heter Hvordan distribuere et ERC20-token på 20 minutter. Den beskriver hvordan du bruker a.env-fil og dotenv i sammenheng med distribusjon av en smart kontrakt ved bruk av Truffle og Infura.
Tilnærming 2: Bruk av krypterte hemmeligheter i GitHub Actions (passende for de som er kjent med GitHub på organisasjonsnivå, med de nødvendige tillatelsene og GitHub-kontoen for å kunne praktisere disse).
Tilnærming 2 bruker verktøy spesielt laget av GitHub for å løse problemet med hemmeligheter som en nødvendig del av distribusjon av kode, men ikke noe som skal avsløres for enkeltpersoner som ikke skal ha tilgang til dem. Denne tilnærmingen er mest relevant for en organisasjon eller person som bruker GitHub
Trinn 1: Les dokumentasjonen på Krypterte hemmeligheter. Seriøst, les dokumentasjonen.
Krypterte hemmeligheter lar deg lagre og bruke hemmeligheter i et enkelt GitHub-arkiv eller på tvers av mange GitHub-arkiver. Les dokumentasjonen om hvordan du bruker disse, da GitHub gjør en utmerket jobb med å forklare hvordan du bruker Krypterte hemmeligheter innenfor GitHub-handlinger
Trinn 2: Gjør hva dokumentasjonen forteller deg å gjøre. Det er ganske god dokumentasjon.
Konklusjon
Du vet nå to tilnærminger for å forhindre at hemmelighetene dine blir publisert til GitHub. Er det andre tilnærminger for å gjøre dette? Sikkert. Her er to metoder som fungerer for oss. Hovedpoenget vi prøver å formidle er å sørge for at du tenker på hvor hemmelighetene dine kan dukke opp, og sørge for at du tar skritt for å beskytte deg selv. Hold deg trygg der ute.
SikkerhetSmart kontrakterSoliditetNyhetsbrevAbonner på nyhetsbrevet vårt for de siste Ethereum-nyhetene, bedriftsløsninger, utviklerressurser og mer.E-postadresse Eksklusivt innholdWebinar
Hvordan lage et vellykket Blockchain-produkt
Webinar
Hvordan sette opp og kjøre en Ethereum-node
Webinar
Hvordan lage din egen Ethereum API
Webinar
Hvordan lage et sosialt token
Webinar
Bruke sikkerhetsverktøy i smart kontraktutvikling
Webinar