آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

آموزش: کدام پروتکل: git: یا ssh: یا https:؟

Y.P.Y  9 سال پیش  3 سال پیش
+5 0

برنامه Git برای کار با repository، پنج پروتکل در اختیار ما گذاشته که هرکدوم مزایا و معایب خودشونو دارن... این پروتکل ها:

1- File (یا همون Local protocol)

2- HTTP (یا همون Dumb protocol)

3- HTTPS (یا همون Smart protocol)

4- SSh

5- Git

هستن. اما از کدوم پروتکل باید استفاده کنیم؟ کدوم پروتکل امنیت بیشتری داره؟ و کدوم پروتکل سرعت بیشتری داره؟

File://

این پروتکل برای کار با repository های داخل هارد(local) طراحی شده و ما در اینجا کاری بهش نداریم.

HTTP://

این پروتکل بخاطر برخی کمبود ها و ضعفهای امنیتیش تقریباً منسوخ شده و هیچ سروری ازش استفاده نمی کنه و خود تیم Git هم ردش میکنه.

HTTPS://

  • در حال حاضر، ساده ترین، محبوب ترین و سازگارترین(compatible) پروتکل استفاده از Git هستش.
  • هم قابلیت Read-only داره و هم Writable هه.
  • سرعتش برای انتقال اطلاعات نرماله.
  • سرور بصورت خودکار توسط certificate تایید می شه.
  • hand-shake بین کلاینت و سرور در 2-3 پروسه انجام میشه.
  • توسط X.509 certificate اطلاعات رو رمزنگاری می کنه.
  • نیاز به SSh Keys و آپلود Public Key در سرور نداره، پس از هر مکانی و سیستمی قابل استفادست. (web-based)
  • از Pr@xi پشتیبانی می کنه.
  • معمولاً در پورت 443 تنظیم میشه و توسط Firewall مسدود نشده.
  • گزینه مناسب برای repository های عمومی و خصوصی با ترافیک متوسط.
  • احراز هویت(authentication) توسط username و password حساب کاربر در سرور انجام میشه.
  • در صورت دزدیده شدن username و password، کل حساب کاربری در سرور از دست خواهد رفت.
  • اکثر سرورهای HTTPS اجازه pull و clone کردن بصورت anonymous رو میدن.
  • بیشتر فرایند های امنیتی در مرورگر/وب انجام میشه و نه در Git.
  • دستورات و عملیات بصورت POST/GET ارسال و دریافت میشن.
  • بدون تنظیم credential-caching در کلاینت، کاربر برای push کردن باید هربار احراز هویت کنه. (clone و pull رو هم شامل میشه اگر دسترسیش محدود شده باشه)
  • برای راه اندازی سرور Git، به برنامه Git، یک TLS certificate معتبر و Web server نیاز داره. بنابراین راه اندازی سرور HTTPS کمی زمانبر هستش.
  • این پروتکل حدوداً در سال 1995 رونمایی شد.
  • نمونه URL:

git clone https://domain/project.git

SSh://

  • نسبت به HTTPS از سادگی، محبوبیت و سازگاری(compability) کمتری برخورداره. (چون حرفه ای تر و قدرتمند تره)
  • هم قابلیت Read-only داره و هم Writable هه.
  • سرعتش برای انتقال اطلاعات سریعتر از HTTPS هه.
  • سرور با اجازه کاربر توسط Fingerprint کلید تایید می شه.
  • hand-shake بین کلاینت و سرور در 5-6 پروسه انجام میشه.
  • توسط AES, Blowfish, RC4, 3DES, CAST128 یا Arcfour اطلاعات رو رمزنگاری می کنه.
  • نیاز به SSh Keys و آپلود Public Key در سرور داره، پس کاربر باید به SSh مجهز باشه.
  • از Pr@xi پشتیبانی می کنه.
  • معمولاً در پورت 9418 تنظیم میشه و گاهاً توسط Firewall مسدود شده. (در سرورهای درجه 2-3 یا دولتی)
  • بهترین گزینه برای repository های خصوصی و حساس.
  • احراز هویت(authentication) توسط Key ها انجام میشه. (حداکثر امنیت)
  • در صورت دزدیده شدن Private Key، کافیست Public key از حساب کاربری در سرور حذف بشه.
  • اکثر سرورهای SSh اجازه pull و clone کردن بصورت anonymous رو نمیدن.
  • بیشتر فرایند های امنیتی در خود SSh و Git انجام میشه.
  • دستورات و عملیات بصورت پارامتری ارسال و دریافت میشن.
    • ssh -x git@domain "git-receive-pack 'project.git'"
  • کاربر برای push کردن کافیست فقط یکبار در کلاینتش احراز هویت کنه. (clone و pull رو هم شامل میشه)
  • برای راه اندازی سرور Git، به برنامه Git، و SSh نیاز داره.
  • این پروتکل حدوداً در سال 1995 رونمایی شد.
  • نمونه URL:

git clone ssh://username@domain/project.gitیا

git clone username@domain:project.git

Git://

  • نسبت به SSh از سادگی، محبوبیت و سازگاری(compability) بیشتری برخورداره.
  • در حالت معمول فقط قابلیت Read-only داره.
  • سرعتش برای انتقال اطلاعات بسیار سریعتر از HTTPS و SSh هه.
  • هیچ مکانیزمی برای تایید سرور نداره.
  • تقریباً هیچ hand-shake ای بین کلاینت و سرور انجام نمیشه.
  • هیچ مکانیزم رمزنگاری درکار نیست.
  • نیاز به SSh Keys و آپلود Public Key در سرور نداره، فقط به برنامه Git نیاز داره.
  • از Pr@xi پشتیبانی می کنه.
  • معمولاً در پورت 9418 تنظیم میشه و گاهاً توسط Firewall مسدود شده. (در سرورهای درجه 2-3 و دولتی)
  • بهترین گزینه برای repository های عمومی Read-only با ترافیک بالا یا پروژه های سنگین.
  • هیچ احراز هویت(authentication) ای انجام نمیشه. (حداقل امنیت)
  • هیج گونه اطلاعات حساسی برای دزدیده شدن وجود نداره.
  • همه سرورهای Git اجازه pull و clone کردن بصورت anonymous رو میدن.
  • هیچ فرایند امنیتی انجام نمیشه.
  • دستورات و عملیات بصورت پارامتری ارسال و دریافت میشن.
    • git domain "git-receive-pack 'project.git'"
  • در حالت معمول امکان write/push کردن وجود نداره.
  • برای راه اندازی سرور Git فقط به Git نیاز داره.
  • این پروتکل حدوداً در سال 2005 رونمایی شد.
  • نمونه URL:

git clone git://domain/project.git

توجه: شما خودتون هم میتونید دسترسی Read-Only یا Writable به هر پروتوکلی که خواستید بدید.

این نکته رو هم در نظر داشته باشید که هرکدوم مزایا و معایب خودشونو دارن و باید درجای مناسبش پروتکل مناسب رو انتخاب کنید.

این مقاله جامع ترین و کامترین در نوع خودشه، حتی در بین مقالات خارجی.

منبع: https://yousha.blog.ir

+1 0
جالب بود ولی سوادم اجازه نداد همشو بفهمم... اگه کسی به این مفاهیم تسلط داره یکم بیشتر و به زبان زیر دلپلم تر :)) توضیح بده این پروتکل ها و ... (9 سال پیش)
+1 0
شما اگر تا به حال با یکی از برنامه های Git, Svn, CVS, Fossil, SourceSafe کار نکردی، بهتره فعلاً این مبحث رو رها کنی... برای شروع به لینک مراجعه کن. (9 سال پیش)
0 0
بیشترین امنیت رو https دارد اما از نظر سرعت انتقال از http کمتر هست و بیشتر برای موارد حساس و حیاتی به کار برده میشود برای مثال پرداخت های شتابی از طریق بانک ها و دلایلی دیگر چون : 1 - جلوگیری از حملات dos وddos و... 2 - اطلاعات بین client , server رو به صورت ssl رمز نگاری میکند هر چند تمام مرور گرها به صورت ssl برای کارهای حساس ساخته شده اند مانند opera , firefox ,chrome (9 سال پیش)
+1 0
خیر. اول اینکه بانکهای ایران، فقط رابط کاربریشون HTTPS هست و نه موتور نقل/انتقالشون، دوماً بانکهای خارجی برای جابه جایی اطلاعات بانکی و کارت اعتباری از SSh استفاده می کنند. سوماً همین الانم قلب خیلی از همین نرم افزارهایی که استفاده می کنیم یا می کنند در سرورهایی مثل Github سواره، که از SSh هم برای آپلود دیتا استفاده می کنند. چهارماً HTTPS همون HTTP هستش، که فقط بر روی SSL سوار میشه. درضمن ابزارهایی که SSh در اختیارتون میزاره "هیچ" نرم افزار دیگه ای نمیزاره. اونم از نوع امنش! :) (9 سال پیش)
0 0
سلام و وقت بخیر : خوب اینایی که من گفتم رو شما هم گفتید : اولا بانک ها از https استفاده میکنند که من درج کردم : دوما همه ی بانک ها دنیا حتی در کشور ما وقتی از https استفاده میکنند یعنی شامل ssl هست : سوما نه فقط در نرم افزار و نه فقط در بانک ها هیچ وقت امنیت 100 درصد نیست و قابل هک شدن هست چهارما : https با http کاملا متفاوت هست : لینک (9 سال پیش)
+1 0
همیشه منابع معتبر رو نام ببرید، و نه تبیان و امثالش... تیبان فقط یک عده نویسندن که پول میگیرن تا سایت رو پر کنن... لینک http://www.snailbook.com/faq/ssl.auto.html لینک (9 سال پیش)
+1 0
"when a browser accesses a URL which begins with "https", it speaks HTTP over an SSL connection." "SSL means “Secure Sockets Layer”. Many protocols — like HTTP, SMTP, FTP, and SSH ‘“ were adjusted to include the support of SSL." (9 سال پیش)
+1 0
درضمن DDoS هیچ ارتباطی به HTTPS نداره. و درواق HTTP یا HTTPS بودن سرور هیچ توفیقی در جلوگیری از حملات DDoS نمی کنه. اگر منبعی دارید ذکر کنید. یا بگردید! لینک (9 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .