blogul 1NewsDevelopersEnterpriseBlockchain Explained Evenimente și conferințe ApăsațiBuletine informative

Aboneaza-te la newsletter-ul nostru.

Adresa de email

Vă respectăm confidențialitatea

AcasăBlogDezvoltare blockchain

Cum să evitați încărcarea cheii dvs. private pe GitHub: Abordări pentru a împiedica publicarea secretelor dvs.

Păstrați-vă cheile private și secretele API în siguranță în timp ce dezvoltați contracte inteligente de ConsenSys 7 octombrie 2020 Postat pe 7 octombrie 2020

ușă de lemn închisă PPCRJ2J

De Coogan Brennan și Thomas Hay

De câteva ori pe an, A poveste face runde a unui nefericit dezvoltator Ethereum care, în timp ce construia un proiect blockchain, își încarcă din greșeală fraza mnemonică super-secretă – folosită pentru a-și genera portofelul – pe pagina publică GitHub. În câteva secunde, portofelul lor a fost „piratat” și golit din fondurile sale.

Nimic nu a fost într-adevăr spart, totuși: tranzacția care transferă toate activele la adresa „hackerului” este perfect bună. De aceea, rețeaua o procesează și o acceptă. Rețelei nu îi pasă cine semnează tranzacția sau care a fost intenția lor, doar că criptografia sa este solidă. Rețeaua presupune că oricine deține un mnemonic sau cheile private generate, este proprietarul legitim al activelor din conturile corespunzătoare. 

Acesta este un confort rece pentru persoana care și-a pierdut controlul asupra portofelului. Reacția imediată este să credem că portofelul lor a fost spart. E de înțeles! Dar, înainte de a ajunge la punctul în care trebuie să vă întrebați dacă portofelul dvs. a fost compromis, este bine să verificați dacă nu sunteți pe punctul de a vă dezvălui informațiile private.

Iată câțiva pași definitivi pentru a evita căderea într-o situație similară. (Puncte bonus: tehnicile descrise în acest articol sunt o igienă de securitate excelentă pentru orice proiect, blockchain sau nu!)

Mai jos, prezentăm două abordări despre cum să NU publicați secrete (chei API, chei private, fraze semințe, parole de bază de date) în depozitul dvs. GitHub:

Abordarea 1: folosind.gitignore, fișierul a.env și dotenv (presupunem că dezvoltăm folosind modele comune Solidity și un flux de lucru folosind Trufa și MetaMask, chiar dacă acest lucru a fost generalizat)

Pasul 1: Citiți documentația de pe.gitignore. Serios, citiți întreaga pagină a documentației.

Fișierul A.gitignore vă permite să specificați fișiere care nu trebuie urmărite. Veți crea un fișier.gitignore în directorul în care vă dezvoltați proiectul. În acel fișier, veți specifica fișierele pe care nu doriți să le urmăriți. Documentația vă va explica diferitele tipare de text pe care le puteți utiliza pentru a nu urmări (sau urmări) fișierele.

Iată un exemplu:

imageofgitignorefile 1

În linia 20, am adăugat un fișier a.env

Pasul 2: Configurați fișierul a.env pentru a stoca variabilele de mediu

Variabile de mediu, implementate inițial în versiunea 7 Unix (lansată în 1979 de Bell Labs, faceți clic aici pentru o copie a manualului) modificați procesul (procesele) pe care îl rulează un sistem de calcul. Variabilele de mediu au fost implementate în toate sistemele de operare pe care studenții noștri le folosesc pentru a construi dApp-uri pe Ethereum (Unix, Linux, MacOS, Windows). În acest caz, secretele dvs. sunt tratate ca variabile de mediu și plasate într-un fișier numit.env.

Iată un exemplu de fișier a.env

exampleofenvfile

Pasul 3: Citiți documentația despre dotenv. Instalați dotenv.

Dotenv „Este un modul cu dependență zero care încarcă variabilele de mediu dintr-un fișier a.env în process.env.” (recuperate de la  https://www.npmjs.com/package/dotenv 25 septembrie 2020)

nstall dotenv folosind npm install dotenv

Pasul 4: Adăugați require (‘dotenv’). Config () la începutul aplicației. Utilizați process.env în acest fișier.

Exemplu de cod: application.js

// Acesta este partea de sus a application.js require (‘dotenv’). Config () // Acesta este un exemplu de process.env mai târziu în fișierul var PrivateKey = new Buffer (process.env. ["PRIVATE_KEY"], "hex")) // Iată un alt exemplu de utilizare a procesului.env const APIKey = proces.env.API_KEY; Limbajul codului: JavaScript (javascript)

Pasul 5: Acum, dacă doriți să publicați într-un depozit GitHub existent sau să treceți la un nou depozit GitHub, puteți face acest lucru. Secretele dvs. nu vor apărea ca parte a depozitului dvs. GitHub.

Tutorial video dintr-o altă sursă: Daniel Schiffman din Trenul de codificare oferă un tutorial video folosind o aplicație meteo în videoclipul său 3.4 Ascunderea cheilor API cu variabile de mediu (dotenv) și introducerea codului în GitHub.

Tutorial text dintr-o altă sursă: Mason’s Blog are un tutorial numit Cum să implementați un jeton ERC20 în 20 de minute. Acesta descrie modul de utilizare a fișierului a.env și dotenv în contextul implementării unui contract inteligent folosind Truffle și Infura.

Abordarea 2: Utilizarea secretelor criptate în acțiunile GitHub (adecvată pentru cei familiarizați cu GitHub la nivel de organizație, cu permisiunile și contul GitHub necesare pentru a le putea pune în practică).

Abordarea 2 folosește instrumente create special de GitHub pentru a rezolva problema secretelor, fiind o parte necesară a implementării codului, dar nu ceva care ar trebui dezvăluit persoanelor care nu ar trebui să aibă acces la ele. Această abordare este cea mai relevantă pentru o organizație sau o persoană care utilizează GitHub

Pasul 1: Citiți documentația de pe Secretele criptate. Serios, citiți documentația.

Secretele criptate vă permit să stocați și să folosiți secrete într-un singur depozit GitHub sau în mai multe depozite GitHub. Citiți documentația despre cum să le utilizați, deoarece GitHub face o treabă excelentă de a explica cum să le utilizați Secretele criptate în Acțiuni GitHub

Pasul 2: Faceți ceea ce vă spune documentația să faceți. Este o documentație destul de bună. 

Concluzie

Acum cunoașteți două abordări pentru a împiedica publicarea secretelor dvs. pe GitHub. Există alte abordări pentru a face acest lucru? Cu siguranță. Iată două metode care funcționează pentru noi. Principalul punct pe care încercăm să-l transmitem este să ne asigurăm că vă gândiți unde pot apărea secretele dvs. și să vă asigurați că luați măsuri pentru a vă proteja. Stai în siguranță acolo.

Securitate Contracte inteligente Soliditate Buletin informativ Abonați-vă la newsletter-ul nostru pentru cele mai recente știri Ethereum, soluții pentru întreprinderi, resurse pentru dezvoltatori și multe altele. Adresa de e-mail Conținut exclusivCum să construiți un produs Blockchain de succesWebinar

Cum să construiți un produs Blockchain de succes

Cum se configurează și se execută un nod EthereumWebinar

Cum se configurează și se execută un nod Ethereum

Cum să vă construiți propriul API EthereumWebinar

Cum să vă construiți propriul API Ethereum

Cum să creați un simbol socialWebinar

Cum să creați un simbol social

Utilizarea instrumentelor de securitate în dezvoltarea contractelor inteligenteWebinar

Utilizarea instrumentelor de securitate în dezvoltarea contractelor inteligente

Viitorul activelor digitale și al DeFi-ului financiarWebinar

Viitorul finanțelor: active digitale și DeFi

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me