Како да опозовете осетљиве датотеке из Гита

Датотеке фазе, додајте поруку урезивања, притисните. Без чекања! Не та датотека. А сада морамо почети да гугламо.

Сваки програмер је у прошлости случајно креирао осетљиве датотеке. Па како да поправимо ситуацију и осигурамо да се она више неће поновити?

У овом чланку ћу вам објаснити шта треба учинити када случајно направите осетљиву датотеку и уврстити потребне Гит наредбе за подешавање историје.

Контрола штете

Дакле, случајно сте направили осетљиву датотеку. Назовимо то .енв . Постоје два важна питања на која треба одговорити:

  • Да ли сте гурнули урезивање у удаљено спремиште?
  • Да ли је удаљено спремиште јавно?

Још није гурнуто

Ако још нисте погурали, ситуација уопште није критична. Можете се вратити на претходни урези :

git reset HEAD^ --soft 

Датотеке ће остати у радној копији тако да можете поправити осетљиву датотеку / информације. Ако желите да задржите урезивање и само уклоните осетљиву датотеку , урадите:

git rm .env --cached git commit --amend 

Можете користити --amendједини на најновијем урезивању. Ако сте успели да додате гомилу урезивања поврх тога, користите:

git rebase -i HEAD~{how many commits to go back?} 

Ово ће вам омогућити да поправите неисправно урезивање и поновит ће све преостале урезе након поправка, тако да их нећете изгубити.

Већ гурнути

Ако сте притиснули, постоји важна разлика између јавних и приватних спремишта.

Ако је ваше спремиште приватно и нема ботова или људи којима не верујете са приступом, можете лако изменити последњу урезивање помоћу две горе наведене команде.

Ако сте гурнули гомилу урезивања изнад проблематичног, и даље можете да користите филтер-грану или БФГ репо чистач да бисте уклонили осетљиву датотеку из историје гит-а :

git filter-branch --force --index-filter "git rm --cached --ignore-unmatch .env" --prune-empty --tag-name-filter cat -- --all 

Али имајте на уму два важна аспекта ових промена:

  • Ви заправо мењате историју

    Ако постоје други људи, друге гране, друге виљушке или отворени захтеви за повлачење који се ослањају на тренутно стање спремишта, разбићете их. У тим случајевима третирајте спремиште као да је јавно и избегавајте мењање историје.

  • Морате очистити кеш меморију

    Увек морате контактирати подршку свог добављача Гит складишта и затражити да очисте кеш меморију вашег спремишта. Иако сте поправили проблематично урезивање или преписали историју, стари урез са осетљивом датотеком остаје у кеш меморији. Морали бисте знати његов ИД да бисте му приступили, али је и даље доступан док не очистите кеш меморију.

Да ли треба да регенеришем кључеве ако се гурну у јавно спремиште?

Укратко, да. Ако је ваше спремиште јавно или ако из било ког другог разлога не мислите да је то сигурно место, осетљиве информације морате сматрати угроженим.

Чак и ако уклоните податке из свог спремишта, не можете ништа да урадите у вези са ботовима и другим вилицама репо-а. Па који су следећи кораци?

  • Деактивирајте све кључеве и / или лозинке

    Урадите ово као први корак. Једном када деактивирате тастере, осетљиве информације постају бескорисне.

  • Подесите гитигноре

    Додајте све осетљиве датотеке у .гитигноре да бисте били сигурни да их гит неће пратити.

  • Уклоните осетљиву датотеку
  • Заложите поправак са смисленим објашњењем

    Не покушавајте да сакријете грешку. Остали сарадници и ви за месец дана ћете ценити објашњење шта се десило и шта ова поправка поправља.

Најбоље праксе приликом складиштења осетљивих података у Гит-у

Да бисте избегли овакву ситуацију у будућности, ево неколико савета за чување осетљивих података:

Чувајте осетљиве податке у .енв датотеци (или сличној датотеци на другим платформама)

АПИ кључеве и остале осетљиве податке чувајте у једној .енв датотеци. На тај начин нећете случајно извршити нови кључ када је .енв датотека већ изузета из гит-а.

Још једна велика предност је што приступ свим кључевима добијате помоћу глобалне променљиве процеса .

Користите АПИ кључеве ако је могуће

АПИ кључеви се лако генеришу и деактивирају ако су угрожени. Ако је могуће, користите их и избегавајте употребу акредитива / лозинки.

Додајте АПИ кључеве у алатку за изградњу

АПИ кључеви су обично потребни током израде апликација. Алати за изградњу попут Нетлифи-а омогућавају вам да додате ове кључеве у сигурна подручја њихове администрације. Ови кључеви се аутоматски убризгавају у вашу апликацију помоћу глобалне променљиве процеса .

Додајте .енв датотеку у гитигноре

Уверите се да Гит не прати датотеке које садрже осетљиве информације.

Наведите датотеку .енв.темплате

Датотека предлошка налаже осталим сарадницима да додају потребне АПИ кључеве, без потребе да читају дугачке документе.

Не мењајте историју на даљинском управљачу

Користите ово као правило. Ако сте се придржавали горњих правила, нећете морати да мењате историју.

Надам се да су вам ове информације помогле да останете на сигурном. Да ли имате лично искуство са непоколебљивошћу или сте можда научили добру лекцију ? Разговарај са мном на Твиттер-у :-)