ولې ګیټ لاګ رازونه افشا کوي حتی وروسته له دې چې "حذف شي"
د فایل څخه یوه کرښه حذف کول او commitد بدلون راوستل په حقیقت کې ستاسو د ریپو څخه حساس معلومات نه لرې کوي. که چیرې دا راز، د API کیلي، اعتبار، یا نښه، کله هم وي commitټیډ، دا ستاسو د ګیټ تاریخ کې ژوند کوي. هرڅوک چې منډه وهي ګیټ لاګ -p, ګيټ شو، یا د تیرو څخه توپیرونه معاینه کول commitکاروونکي لاهم کولی شي دا ترلاسه کړي.
حتی که تاسو یو فایل له سره ولیکئ یا ارزښت بدل کړئ، ګیټ نښه د هر بدلون بشپړ نسب ساتي. دا د ډیزاین له مخې دی. د ګیټ ټول ماډل د نه بدلیدونکي پر بنسټ والړ دی commit تاریخ او ویشل شوي کاپيانې. نو تر هغه چې تاسو په واضح ډول تاریخ بیا ولیکئ، ستاسو رازونه لاهم هلته دي. دلته یوه عملي قضیه ده:
git commit -m "Added config with AWS_SECRET_KEY" # Realize mistake git rm config.json git commit -m "Removed secret file" ⚠️ تعلیمي مثال، په تولید کې مه چلوئ
ډېر ناوخته. د ګیټ نښه بیا هم هغه کیلي په ابتدايي کې ښیې commit.
د ګیټ سټش او ګیټ ریبیس په اړه غلط فهمۍ
ډیری پراختیا کونکي فرض کوي ګیټ سټش د رازونو پټولو یا پاکولو کې مرسته کوي. ریښتیا نه ده. ګیټ سټش یوازې المارۍ کاري لارښود په لنډمهاله توګه بدلون مومي؛ دا هیڅکله نه لمس کوي commit تاریخ. که یو راز کله هم وي commitښه، وروسته د بدلونونو پټول د هغې د پاکولو لپاره هیڅ نه کوي.
په اړه ګیټ ریبیس؟ پداسې حال کې چې دا کولی شي تاریخ بیا ولیکي، دا باید مخکې له دې ترسره شيcisایلی. یوازې منډه وهل ګیټ ریبیس -i او بیا تنظیم کول یا سکواش کول commits رازونه نه لرې کوي تر هغه چې تاسو یې په واضح ډول ترمیم یا پریږدئ. او که حتی یو کلون یا فورک د اصلي سره شتون ولري commitستا راز ژوندی دی.
تر دې هم بدتر، د زور له لارې په سمه توګه فشار راوړلو یا د همکارانو سره بیا همغږي کولو پرته بیا بیس کول کولی شي د ادغام له لارې افشا شوي اسناد بیا معرفي کړي.
git commit -m "Added config with AWS_SECRET_KEY"⚠️ تعلیمي مثال، په حقیقي چاپیریال کې مه کاروئ
git rebase -i HEAD~3⚠️ تعلیمي مثال، د تولید په زیرمو کې مه چلوئ
د commit راز پکې وي، خو لرې کول یې هېر کړئ. ستاسو ګیټ نښه ښایي وګورو پاک، خو حساس مواد لا هم د بیرته راګرځېدو وړ دي.
د ګیټ تاریخ کې د هیر شوي اسنادو څخه د حقیقي نړۍ خطرونه
دا نظري نه ده. برید کوونکي په فعاله توګه عامه او خصوصي زیرمې د هغو رازونو لپاره ګوري چې پټ دي commit تاریخونه. د ګیټ هب فورکس، د عکس ریپوز، او کیش شوي CI/CD pipelineټول کاروونکي کولی شي دا هېر شوي نښې ولري.
- د زاړه څخه لیک شوی API کیلي ګیټ نښه د یو نوي شرکت لپاره په زرګونو کلاوډ بلینګ ته لاره هواره کړه.
- د OAuth ټوکنونه committed، بیا "حذف شوي"، د کاروونکو حسابونو د تښتولو لپاره کارول شوي.
- د خلاصو سرچینو پروژو په پټو کې پټ رازونه د لویو امنیتي پیښو لامل شول.
دا ستونزې په پراخه کچه دي CI/CD. هره دنده چې د ریپو کلون کوي چلیږي ګیټ نښه د پوښ لاندې، او هر ساختماني اثار په بالقوه توګه د افشا شویو رازونو نښې پکې شاملې کیدی شي.
د ګیټ فلټر ریپو سره حساس معلومات پاکول
که چیرې زیان رسیدلی وي، د پاکولو لپاره ترټولو باوري وسیله دا ده git filter-repo. برعکس ګیټ ریبیس، کوم چې بیا لیکي انفرادي commits, git filter-repo ټول بیا لیکلی شي commit تاریخ د فایل لارو، نمونو، یا منځپانګې پر بنسټ.
مثال: د ټولو پیښو پاکول config.json چې کېدای شي رازونه ولري:
pip install git-filter-repo # Backup your repo first cp -r my-repo my-repo-backup cd my-repo git filter-repo --path config.json --invert-paths ⚠️ تعلیمي مثال، په تولید کې د کارولو دمخه په ازموینه کې تایید کړئ
یا د ټولو لرې کولو لپاره commitهغه چې یو ځانګړی تار پکې شامل وي (د مثال په توګه، AWS_SECRET_ACCESS_KEY):
git filter-repo --replace-text <(echo 'AWS_SECRET_ACCESS_KEY==REDACTED')⚠️ تعلیمي مثال، په تولید کې د کارولو دمخه په ازموینه کې تایید کړئ
محتاط اوسئ: دا به بیا ولیکل شي commit هشونه. تاسو به اړتیا ولرئ چې په زور سره فشار ورکړئ او ټولو همکارانو ته خبر ورکړئ. هر ډول اتوماتیک یا د ځای پرځای کولو کیلي چې ورسره تړلي وي commit هېشونه به مات شي.
همدارنګه، وسایل لکه د BFG ریپو-کلینر ورته وړتیاوې وړاندې کوي مګر لږ انعطاف منونکي دي او اوس د پیچلو قضیو لپاره زاړه ګڼل کیږي.
د پټو لیکونو مخنیوی مخکې له دې چې ګیټ ته ورسیږي
مخنیوی د پاکوالي څخه غوره دی. دلته د رازونو د تل د رسیدو څخه د مخنیوي څرنګوالی دی. ګیټ نښه:
1. Pre-commit Hooks
لکه وسایل وکاروئ pre-commit, ګیټ لیکس، او یا تالیفین د رازونو لپاره مخکې له مخکې پلټنه کول commits:
# .pre-commit-config.yaml - repo: https://github.com/zricethezav/gitleaks rev: v8.15.0 hooks: - id: gitleaks 2. CI/CD Pipeline تطبیق
یوځای کول د پټو معلوماتو کشف ستاسو د CI دندو ته ننوځي. ناکامي هغه وخت رامینځته کیږي کله چې رازونه وموندل شي. دا یوه پالیسي جوړه کړئ.
۳. د رازونو مدیریت
هیڅکله اسناد هارډ کوډ مه کوئ. د لومړۍ ورځې څخه د چاپیریال متغیرات، والټونه، یا پټ مدیران وکاروئ.
۴. د پلټنې انحصارونه
د دریمې ډلې په پیکجونو ړوند باور مه کوئ. رازونه افشا کېدای شي د npm، PyPI، یا ډاکر پرتونو له لارې.
وروستۍ حل: د ګیټ فلټر ریپو سره رازونه پاک کړئ
د کوډ څخه د رازونو حذف کول کافي ندي. ګیټ نښه بشپړ ریکارډ ساتي پرته لدې چې تاسو د تاریخ بیا لیکلو لپاره قصدي اقدام وکړئ. تکیه مه کوئ ګیټ سټش یا نیم پخه شوی ګیټ ریبیس هڅې. کارول git filter-repo کله چې تاسو ژورې پاکوالي ته اړتیا لرئ، او پالیسۍ او سکیننګ پلي کړئ مخکې لدې چې رازونه ستاسو زیرمې ته ورسیږي.
د پټو پټو کشف لپاره، د وسیلو کارولو په اړه فکر وکړئ لکه ژیګیني ستاسو د خوندي کولو لپاره pipelines، پلي کول commit حفظ الصحه، او د قیمتي لیکونو مخه ونیسئ مخکې لدې چې دوی سطحي شي. ګیټ هیڅکله نه هیروي، مګر تاسو کولی شئ ډاډ ترلاسه کړئ چې دا هیڅکله ستاسو رازونه په لومړي ځای کې په یاد نه لري.






