6 أفضل الممارسات لإدارة مستودعات Git بأمان

تجنب ازدحام المستودعات والأنشطة الأخرى التي تجعل إدارة قاعدة التعليمات البرمجية الخاصة بك أمرًا صعبًا. بدلاً من ذلك ، استخدم أفضل الممارسات للمساعدة في تسهيل الأمور.







يسمح لك فحص المصادر في المستودع بتقييم مستوى الأمان للتطبيقات. ولكن إذا لم يكن أحد ينظر إلى الشفرة ، فإن المشكلات ستنمو فقط. لحسن الحظ ، لدى GitHub خبراء أمن خاصين بهم اكتشفوا مؤخراً حصان طروادة في العديد من مستودعات Git. لسبب ما لم يلاحظه أصحاب هذه المستودعات. بينما لا يمكننا أن نملي على الآخرين كيفية إدارة مستودعاتنا الخاصة ، يمكننا أن نتعلم من أخطائهم. في هذه المقالة سنلقي نظرة على تقنيات مفيدة للعمل مع المستودعات.



استكشف مستودعك





ربما تكون هذه التوصية الأكثر أهمية. سواء كنت قد قمت بإنشاء المستودع بنفسك أو سلمته لك ، فمن المهم معرفة محتويات المستودع الخاص بك. كحد أدنى ، تحتاج إلى معرفة المكونات الأساسية لقاعدة التعليمات البرمجية التي تديرها. إذا ظهر ملف عشوائي ، بعد بضع عشرات من عمليات الدمج ، يمكنك اكتشافه بسهولة لأنه سيثير أسئلة لك. بعد ذلك ، ستحتاج إلى التحقق منه لمعرفة ذلك ، وبعد ذلك يقرر مصيره.



حاول ألا تضيف ثنائيات





تم تصميم Git في الأصل للملفات النصية ، سواء أكانت C أو Python أو Java code أو JSON و YAML و XML و Markdown و HTML وما إلى ذلك:



$ cat hello.txt
This is plain text.
It's readable by humans and machines alike.
Git knows how to version this.

$ git diff hello.txt
diff --git a/hello.txt b/hello.txt
index f227cc3..0d85b44 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1,2 +1,3 @@
 This is plain text.
+It's readable by humans and machines alike.
 Git knows how to version this.




لا يحب Git الثنائيات:



$ git diff pixel.png
diff --git a/pixel.png b/pixel.png
index 563235a..7aab7bc 100644
Binary files a/pixel.png and b/pixel.png differ

$ cat pixel.png
 PNG
IHDR7n $gAMA  
               abKGD݊ tIME 

                          -2R  
IDA c` ! 3%tEXtdate:create2020-06-11T11:45:04+12:00  r.%tEXtdate:modify2020-06-11T11:45:0


لا يمكن تحليل البيانات الموجودة في ملف ثنائي بنفس الطريقة التي يتم بها تحليل النص العادي ، لذلك إذا تغير شيء ما في الملف الثنائي ، فيجب استبداله بالكامل.



لجعل الأمور أسوأ ، لا يمكنك التحقق (قراءة وتحليل) البيانات الثنائية بنفسك.

بالإضافة إلى أدوات POSIX المعتادة ، يمكنك العثور على ثنائيات باستخدام git diff. عند محاولة تشغيل فرق مع خيار --numstat ، فإن Git سيعود فارغًا:



$ git diff --numstat /dev/null pixel.png | tee
-     -   /dev/null => pixel.png
$ git diff --numstat /dev/null file.txt | tee
5788  0   /dev/null => list.txt


إذا كنت تفكر في إضافة ثنائيات إلى مستودعك ، فتوقف وفكر. إذا تم إنشاء ثنائي أثناء عملية البناء ، فلماذا تضيفه إلى الريبو الخاص بك؟ إذا قررت أنه من المنطقي القيام بذلك ، فتأكد من الوصف في ملف README أو في مكان مماثل لماذا تحتفظ بالثنائيات وما هو بروتوكول تحديثها. يجب أن يتم التحديث بشكل مقتصد لأنه في كل مرة تقوم فيها بإجراء تغيير على النقطة ، تتضاعف مساحة التخزين.



يجب أن تظل مكتبات الطرف الثالث طرف ثالث



في حين أن إحدى الفوائد العديدة للمصدر المفتوح هي أنه يمكنك استخدام التعليمات البرمجية التي لم تكتبها وإعادة توزيعها بحرية ، فهناك العديد من الأسباب الوجيهة لعدم استضافة مكتبة تابعة لجهة خارجية في المستودع الخاص بك. بادئ ذي بدء ، سيكون عليك التحقق بشكل مستقل من كل هذا الرمز وتحديثاته الإضافية للتأكد من أن المكتبة موثوقة. ثانيًا ، عندما تقوم بنسخ مكتبات الطرف الثالث إلى مستودع Git ، فإنه يحول التركيز بعيدًا عن المشروع الرئيسي.



استخدم Git Subsodule لإدارة التبعيات الخارجية .



لا تستخدم git إضافة عمياء





إذا تمت ترجمة مشروعك بنجاح ، قاوم الرغبة في استخدام الأمر git add. (حيث "." هو الدليل الحالي على سبيل المثال). هذا مهم بشكل خاص إذا كنت لا تقوم بتجميع مشروعك يدويًا ولكنك تستخدم IDE لإدارة مشروعك. قد يكون من الصعب للغاية تتبع ما تمت إضافته إلى المستودع الخاص بك عندما يدير IDE مشروعك. لذلك ، من المهم إضافة ما قمت بإنشائه بنفسك وإعداده للإضافة فقط ، وليس أي كائن جديد ظهر بشكل غامض في مجلد المشروع الخاص بك.



لذا ، قبل تشغيل git add ، راجع ما سيتم إضافته إلى المستودع. إذا رأيت كائنًا غير مألوف ، فاعرف مصدره ولماذا لا يزال في دليل مشروعك بعد تشغيل الأمر clean (أو أمر مكافئ).



استخدم تجاهل بوابة





يحتوي دليل المشروع النموذجي على الكثير من الملفات المخفية والبيانات الوصفية والتحف غير الضرورية. من الأفضل أن تتجاهل هذه الأشياء: كلما زاد وجودها ، زادت احتمالية انزعاجك من هذا "القمامة" وستفتقد شيئًا مهمًا أو خطيرًا.



يجعل ملف gitignore من الممكن تصفية الأشياء غير الضرورية. يقدم Github.com/github/gitignore العديد من قوالب gitignore المخصصة التي يمكنك تنزيلها واستضافتها في مشروعك. Gitlab.com ، على سبيل المثال ، قدم مثل هذه القوالب منذ عدة سنوات.



تغييرات قاعدة البيانات المعتدلة





عندما تتلقى طلب سحب أو سحب ، أو عندما تتلقى تصحيحًا عبر البريد الإلكتروني ، يجب عليك التأكد من أن كل شيء على ما يرام. وظيفتك هي دراسة الكود الجديد الوارد في قاعدة الكود وفهم ما يفعله. إذا كنت لا توافق على تنفيذه ، أو ما هو أسوأ ، فلا تفهم هذا التنفيذ ، اكتب رسالة إلى المرسل واطلب التوضيح. لا حرج في تعلم رمز جديد يدعي مكانًا في مشروعك. علاوة على ذلك ، أنت تفعل ذلك لصالح المستخدمين: في هذه الحالة ، سيفهمون بوضوح التغييرات التي تقبلها ولماذا.



تحمل المسؤولية



إن الحفاظ على تأمين البرمجيات مفتوحة المصدر هو وظيفة مجتمعية. استكشف قاعدة التعليمات البرمجية ، وقم بإعاقة الفوضى وتجاهل التهديدات الأمنية المحتملة في المستودعات التي تنسخها. Git قوي ، لكنه مجرد برنامج كمبيوتر ، لذا فإن مسؤولية إدارة عمليات إعادة الشراء تقع عليك في النهاية.






إعلان



خوادم Epic هي خوادم افتراضية لنظام التشغيل Linux أو Windows مع معالجات AMD EPYC القوية ومحركات Intel NVMe سريعة جدًا. تفريق مثل الكعك الساخن!






All Articles