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

آموزش ایجاد امنیت در ارتباط آنلاین + شرح چندین روش + سورس

AhmadVB  7 سال پیش  6 سال پیش
+43 0

خیلی وقت ها پیش می آید که ما می خواهیم اطلاعاتمان را از سرور بخوانیم و برای این کار یک یا چند API سمت سرور می نویسیم که با صدا زدن آنها اطلاعات را دریافت می کنیم.

در روشی که اکثر افراد تازه کار یا حتی متوسط انجام می دهند ، برنامه فقط API مورد نظر خودش را صدا میزند و اطلاعات را می خواند و این در حالی است ک اگر شخص دیگری از این API اطلاع داشته باشد می تواند به راحتی اطلاعات سمت سرو را بخواند.

مثال:
در این جا یک مثال خیلی ساده مطرح می کنم که ممکن است از نظر نیاز های یک پروژه خیلی کاستی داشته باشد. اما فقط می خواهیم بینیم چطور می توان یک امنیت خوب به وجود آورد.

فرض کنید شما یک برنامه Note ساده نوشته اید که قرار است هر شخصی که آن را نصب می کند بتواند با نصب این برنامه روی چند گوشی مختلف ، زمانی ک یک متن در یک گوشی اضافه کرد در سایر گوشی ها نیز این متن قابل دسترس باشد . برای این کار به صورت خیلی ساده ، فرض می کنیم یک API برای ارسال یادداشت جدید به سمت سرور و یک API برای دریافت اخرین یادداشت ها نوشته ایم. همچنین فرض کنیم هر کاربر یک ایمیل برای خود وارد کرده که ما بر اساس ایمیل آن شخص گوشی های موبایلش را همگام می کنیم.

 

در ادامه به روش های مختلف تامین این امنیت می پردازیم.
برای اینکه بتوانیم در مورد هر روش جداگانه صحبت کنیم ، آنها را در پست های جداگانه ارسال می کنم. لطفا در مورد هر کدام فقط زیر خودش کامنت کنید. لطفا تا حد ممکن پست نگذارید.

لطفا تا تکمیل شدن بحث پاسخی درج نکنید. (این مطلب کمی طولانی است و ممکن است چند روز طول بکشد، برای اطلاع از ادامه مبحث می توانید با کلیک روی  دکمه زنگوله عضو شوید ) زمانی که مطلب کامل شد این سطر را پاک می کنم.
متشکرم

 برای این سوال 6 پاسخ وجود دارد.
پاسخ به سوال 
AhmadVB  7 سال پیش
+8 0

1 -روش بدون امنیت:
سمت سرور یک API تعریف می کنیم که دو پارامتر می گیرد. (ایمیل کاربر و شماره آخرین یادداشت دریافت شده) و سرور توسط یک Json تمام یادداشت های جدید را ارسال می کند. در این روش فقط کافی ست هکر آدرس API ما را بدست آورد

پاسخ به سوال 
AhmadVB  7 سال پیش
+9 0

2- روش با امنیت پایین:
اینکه علاوه بر مواردی که در روش قبل وجود داشت یک کلید ثابت درون کد برنامه قرار دهیم به این شکل هر زمان که API را صدا می زنیم تا این کد را نفرستیم API جواب مناسبی نمی دهد. به این روش API Keyنیز می گویند. معمولا در پیاده سازی نقشه google map از آن استفاده کرده اید. اما این روش برای استفاده در اطلاعات محرمانه کاربرد ندارد. چون یک هکر می تواند به راحتی  سورس کد شما را باز کند و این کلید را بدست آورد

پاسخ به سوال 
AhmadVB  7 سال پیش
+9 0

3 - روش با امنیت متوسط ولی خطرناک :

به جای API Key ، از کاربر یک رمز بپرسیم و از آن برای هر شخص جداگانه استفاده کنیم. در این روش ما برای هر بار ارتباط به رمز کاربر نیاز داریم. پس یا باید هر بار رمز را از کاربر بپرسیم یا آن را در جایی ذخیره کینم و در دفعات بعد آن را ارسال کنیم

. ذخیره رمز در گوشی افراد کاری بسیار اشتباه است.چرا که ممکن است یک نرم افزار دیگر این رمز را بخواند. (در گوشی های روت شده که بسیار میسر خواهد بود) حالا فرض کنید یک هکر تصمیم بگیرد رمز کل کاربران برنامه شما را بدست آورد. کافی است با ترغیب کاربران به نصب یک برنامه دیگر ، رمز کلیه کاربران را پیدا کند و علاوه بر اطلاعات آنها رمز کاربران را نیز دارد که خود سایر ماجرا های مشکل سازی را می تواند ایجاد کند.

0 0
سلام این متن یعنی چی؟ "با ترغیب کاربران به نصب یک برنامه دیگر ، رمز کلیه کاربران را پیدا کند" (7 سال پیش)
0 0
فرض کنید برنامه شما رمز را درون گوشی در یک جایی ذخیره کند. بالاخره یک هکر با نصب برنامه شما روی گوشی خودش و دیکد کردن سورس شما می تواند بفهمد شما آن را کجا ذخیره کرده اید. حالا این هکر بیاید یک برنامه بنویسد که با نصب آن روی گوشی هر کاربر دیگری که برنامه شما را دارد ، این رمز را از گوش آن کاربر بخواند و برای سرور هکر ارسال کند. خب کاری که این هکر باید انجام دهد این است که کاربر را ترغیب به نصب یک نرم افزار دیگر کند که خودش نوشته ... این نرم افزار می تواند یک برنامه رایگان با موضوعی کاملا بی ربط و ترغیب کننده باشد. این موارد بسیار به ندرت در مورد نرم افزار های معمولی پیش می آید ولی به نظرم ذکر آن لازم است. (7 سال پیش)
پاسخ به سوال 
AhmadVB  7 سال پیش
+16 0

راه حل چیست ؟

امروز تقریبا اغلب سیستم های آنلاین از API یا سوکت استفاده می کنند که مطمئنا نیاز به تامین امنیت آن حیاتی است. راه کار مفید این کار معروف است به jwt یا Json Web Token که در صورت رعایت موارد کامل آن ، شما می توانید علاوه بر تامین نرم افزار ، چیزی شبیه به Session (نشست) که در طراحی وب سایت ها امری بسیار پر کاربرد است را به دنیای موبایل بیاورید.

روش jwt بسیار انعطاف پذیر است و شما را قادر می کند بتوانید بسیاری از عملیات مرتبط با امنیت را نیز همزمان پیاده کنید. مثلا تعیین سطح دسترسی ، همگام سازی مشخصات کاربر لاگین شده و ... . اخیرا شرکت Auth0 (تلفظ : آت زیرو) امکانات بسیار شگفت آوری را با استفاده از این روش پیاده کرده و کتابخانه های مربوط به تمام زبان های برنامه نویسی را برای سیستم خود پیاده کرده است. با سیستم این شرکت شما می توانید در عرض چند دقیقه امنیت را به نرم افزار خود اضافه کنید و از دنیای امکانات و گزارش هایی که سایت این شرکت به شما می دهد استفاده کنید. هم اکنون این سروریس تا سقف 7000 کاربر فعال در ماه به شما رایگان سرویس می دهد و بیش از آن باید پول بدهید. (که البته متاسفانه با IP های ایران مشکل دارد)

در ادامه به توضیح این مورد می پردازم.

JWT چیست ؟
در واقع jwt چیزی نیست جز یک کلید رندوم بین کلاینت و سرور. در تصویر زیر ابتدا مراحل ایجاد این کلید را می بینیم

 

ساختار JWT :

در تکنیک jwt ما یک کلید تبادل تولید می کنیم که برای ایجاد امنیت از آن استفاده می کنیم. به این کلید توکن (Token) می گوییم. درواقع توکن یک رشته است که از سه قسمت تشکیل شده. که هر قسمت از قسمت دیگر توسط یک نقطه جدا می شود. این سه قسمت عبارتند از:

  • Header
    Payload
    Signature

Header
هدر خود از دو قسمت تشکیل شده. نوع توکن که درواقع کلمه jwt است و الگوریتم رمز نگاری که مثلا می تواند HMAC ، SHA256 , RSA و یا موارد دیگری باشد. مثال:

 {
"alg": "HS256",
"typ": "JWT"
}

Payload
این بخش قسمت دوم توکن است که اطلاعات اصلی کلید را تشکیل می دهد. در این قسمت جزئیات امنیتی مورد نیازمان را اضافه می کنیم. به این جزئیات  claims (مطالبه) نیز گفته می شود.

این جزئیات به دو سری عمومی و اختصاصی دسته بندی میشوند.
عمومی ها شامل کلید واژه های رزرو شده ای هستند بین جامعه طراحان jwt قرارداد شده. مثلا iss برای مشخص کردن نام تولید کننده توکن استفاده می شود یا exp برای مشخص کردن تاریخ انقضای این توکن بکار می رود.
خصوصی ها می تواند هر مقدار دلخواهی باشد که شما تعریف می کنید.مثلا شما می خواهید مشخص کنید که نام کاربری که لاگین کرده چیست می توانید یک عبارت مثل name تعریف کنید.

در این مثال نمونه یک payload مشاهده می کنید:

 {
"iss": "scotch.io",
"exp": 1300819380,
"id": 54351,
"name": "Chris Sevilleja",
"admin": true
}

Signature

قسمت سوم که امضای توکن نام دارد جهت امن کردن این اطلاعات و رمزنگاری استفاده می شود.نکته اینکه الگوریتم رمز نگاری همان است که در type در Header مشخص شده بود. مثلا اگر ما بخواهیم از الگوریتم HMAC SHA256 استفاده کنیم با استفاده از یک تابع مثل تابع زیر مقدار امضا را بدست ی آوریم :

 HMACSHA256( base64UrlEncode(header) + "." +  base64UrlEncode(payload),  secret)

نکته مهمی که وجود دارد این است که در رمز نگاری یک رمز (secret) نیاز است که این رمز اولین بار توسط سرور و به صورت یک عدد دلخواه رندوم تولید و نگهداری می شود. این رمز در اختیار شخص دیگری قرار ندارد. بعدا در ادامه مطلب دلیل این کار را توضیح خواهم داد ولی فعلا به ادامه ماجرای تولید این توکن می پردازیم

خب حالا ما یک توکن سه بخشی داریم. برای تولید رشته نهایی تمام قسمت ها باید به صورت رشته Base64 تبدیل شده باشند. این توکن در نهایت چیزی شبیه این خواهد شد :

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.
TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ

شما می توانید برای تست یک jwt آن را در این سایت وارد کنید.

+1 0
ممنون بایت اموزش هاتون ولی به نظر من همه رو توی ۱ پست می نوشتید بهتر بود (7 سال پیش)
+4 0
دوست عزیز اینی که گفتید سمت سرور و وب کاربرد داره، سمت سرور و کلاینت اندروید امنیت میخواید میتونید در مورد RSA، Authorization و موارد مشابه سرچ کنید. استانداردهای زیادی هست که معمولا از Basic Authorization استفاده میشه. ولی روش های پیشرفته به صورت کاملا استاندارد وجود دارن. (7 سال پیش)
+1 0
@Hajhosseini ممنون بابت نظرتون. من دقیقا از این روشی که شما میگید استفاده نکرده ام. خوشحال می شویم اگر شما هم به عنوان یک راه دیگر در ادامه این تاپیک توضیحاتی در مورد این روش بدهید. البته این را اضافه می کنم jwt صرفا برای استفاده در وب نیست. امروزه دیگر تکنولوژی های سمت کلاینت را کسی جداگانه در نظر نمی گیرد. یک API تهیه میشود و تمام سرویس ها از آن استفاده می کنند. البته ممکن است در شیوه ی پیاده سازی، هر شرکت تغییرات خودش را هم اعمال کند. مثلا تلگرام از چیزی شبیه به ترکیب همزمان jwt و api_key استفاده می کند. (7 سال پیش)
+2 0
در پاسخ به نظر اول ، من تصمیم دارم سر فرصت این بحث را در هر موضوع بیشتر از یک پاراگراف کوتاه توضیح دهم. همچنین در هر موضوع با توجه به کاربرد زیادشان ، در آینده نظرات و پرسش و پاسخ های زیادی مطرح خواهد شد. بنابر این تصمیم گرفتم برای ایجاد نظم ، هر موضوع را جدا گانه درج کنم. (7 سال پیش)
0 0
ممنون به خاطر اطلاعات مفیدتون ... من هم با آقای Hajhosseini@ موافقم... قبلا یه بار درگیر همین مسائل بودم که همه jwt رو توصیه میکردن ولی من أخرش متوجه نشدم که چجوری میشه توی اندروید ازش استفاده کرد ( در آخر به این نتیجه رسیدم که در کلاینت هایی مثل اندروید نمیشه به اون صورت استفاده کرد) ما توی یه اپ فقط میخایم کاربر یه بار یوزر پس وارد کنه و همیشه لاگین بمونه و این همونجایی هست که اندروید رو با وب اپلیکیشن متمایز میکنه و باعث میشه که jwt رو نتونیم توی اندروید استفاده کنیم چون عملا فرقی با همون روش api key نخاهد داشت ولی در کل jwt برای وب خیلی عالیه :) (7 سال پیش)
پاسخ به سوال 
AhmadVB  7 سال پیش
+11 0

چرا از  jwt استفاده کنیم ؟

هدف از ایجاد jwt دو چیز است.

  1. امکان ایجاد تکنیک Login به صورت امن در سرویس های سمت کاربر (Client side)
  2. امکان تبادل اطلاعات محرمانه بین دو دستگاه.

همان طور که می دانید در روش طراحی وب سایت سمت سرور (Server side) یک فضای بسیار کاربردی به نام Session (نشست) در اختیار برنامه نویس قرار می گیرد که هرگاه کاربری لاگین می کند مشخصات او در این فضا ذخیره می شود و تا هنگامی که کاربر مرورگر خود را نبسته و یا تا مدت مشخصی که کاربر هیچ عملیاتی انجام ندهد این نشست همچنان معتبر خواهد بود و برنامه نویس با خیال آسوده می تواند اطلاعات محرمانه را به وی ارائه کند.
خب این فضای نشست یا همان Session سمت سرور قرار دارد و سرور می تواند بر اساس یک سری پارامتر (که اینجا مجال بحث در مورد آن نیست) به راحتی نشست ها را مدیریت کند. اما در تکنولوژی های سمت کاربر (Client side)  دیگر امکان ایجاد نشست به شیوه سابق وجود ندارد چون اغلب اطلاعات سمت کاربر پردازش می شود. در این شیوه سرور باید یک سری API ایجاد کند و اطلاعات را به وسیله API ها به کاربر ارسال کند. در اینجاست که امنیت API ها مورد بحث قرار می گیرد.
تکنیک jwt آمده که این مشکل را حل کند. امروزه با توجه به گسترده شدن امکانات نرم افزاری در تولید اپلیکیشن های سمت کاربر و استفاده از API روش jwt بسیار مرسوم است و سورس های آن برای تقریبا تمام زبانهای برنامه نویسی در دسترس است.

در این تکنیک سرور یک رشته تولید می کند که شرح مختصری از آن در پست قبل آمد. زمانی که اولین بار App سمت کاربر درخواست لاگین می کند یک توکن تولید می شود. این توکن در پاسخ به درخواست App به آن  ارسال می شود. از این پس هر زمان که App بخواهد یک Api را صدا بزند باید این توکن را هم همراه درخواست خود به سرور ارسال کند. سرور با بررسی توکن و اطمینان از صحیح بودن آن ، پاسخ درخواست جدید  App داده می شود. اما اگر توکن معبر نباشد پاسخ عدم دسترسی ( خطای 403 یا هر پاسخ دیگری) به App برگردانده می شود.

در آینده در مورد اینکه چرا jwt امن است و چقدر امن است بحث خواهم کرد.

پاسخ به سوال 
AhmadVB  7 سال پیش
+8 0

چرا JWT امن است ؟

همانطور که در پست های قبل آمد ، در تکنیک jwt پس از ارسال user/pass یک توکن از سرور دریافت می شود که App باید برای دسترسی به سایر Api ها به همراه درخواست خود ، هربار این توکن را نیز ارسال کند. نکته ای که اینجا وجود دارد این است که سرور زمانی که این توکن را برای اولین بار می سازد (وقتی App درخواست لاگین می کند) ، قسمت سوم توکن که همان Signature بود توسط یک رشته رندوم ایجاد و رمز نگاری می شود. و این رشته ی رندوم را هیچ کسی غیر از سرور نمی داند. به این ترتیب زمانی که از سمت کاربر یک درخواست می آید ، فقط سرور می تواند تشخیص دهد که Signature توکنی که از سمت کاربر آمده معتبر است یا نه ؟ و در صورتی که معتبر بود ، پاسخ را به آن درخواست ارائه می کند.

 

نکته دیگری که در این باره می توان مطرح کرد این است که هر توکن یک تاریخ انقضای مشخصی دارد. بنابر این سرور می تواند پس از گذشت مدت مشخصی ، از کاربر مجددا درخواست لاگین کند. این تاریخ به سیاست های طراحی نرم افزار بستگی دارد و از چند ساعت تا چند ماه معمولا متغیر است.

 

مزیت دیگری که در jwt قابل اعلام است ، ایجاد سطح دسترسی بر اساس کاربران متفاوت است. مثلا در قسمت Payload می توان سطح دسترسی یک کاربر را مشخص کرد. به این صورت درون نرم افزار سمت کاربر (APP) می توان برخی از گزینه ها یا منو ها را با توجه به سطح دسترسی ، محدود یا غیر فعال کرد.

 

 

+1 0
مهندس امکانش هست قطعه برنامه ای که از این سیستم jwt استفاده کرده رو اینجا لینک بدین بهمون؟ ما میخوایم استفاده کنیم ولی نمیدونیم توی سیستم خودمون چجوری قرارش بدیم اموزشهاتون هم عالی و بی نظیر هست (7 سال پیش)
0 0
مهندس امکانش هست قطعه برنامه ای که از این سیستم jwt استفاده کرده رو اینجا لینک بدین بهمون؟ ما میخوایم استفاده کنیم ولی نمیدونیم توی سیستم خودمون چجوری قرارش بدیم اموزشهاتون هم عالی و بی نظیر هست (7 سال پیش)
+2 0
1- برای API هایی که نیاز به authentication ندارند و پابلیک هستن مثل "دریافت آخرین اخبار سایت" چطور در این روش میشه API رو امن کرد که فقط کلاینت های مد نظر ما بهش دسترسی داشته باشن؟چون توکن بر اساس یوزرنیم و پسورد ساخته میشه اما برای بعضی چیزا نیازی به عضویت و داشتن نام کاربری نیست . (7 سال پیش)
+3 0
2-برای ایجاد توکن باید (نام کاربری + رمز عبور) به سرور ارسال بشه و یک token بر اساس این دو پارامتر ساخته بشه. حالا فرض کنیم این توکن رو به همراه هر درخواست دیگه به سرور ارسال میکنیم. که این توکن باید در قسمت payload حاوی (نام کاربری یا UserId) باشه تا سرور بتونه verification رو انجام بده. خب در این صورت چه امنیتی ایجاد شده؟! چون با حمله Man in the middle و sniff کردن اطلاعات ، مهاجم همین توکن و مقدار payload رو میتونه به سرور ارسال کنه. بنابراین JWT چه مزیتی ایجاد کرده؟ (7 سال پیش)
+3 0
خیلی سوال هاتون عالی بودند. معلومه که دقیقا متوجه شدید که این روش چه جوری کار میکنه. در جواب سوال اول: لزوما نیاز نیست حتما یوزر پسوورد فرستاده بشه. توی مرحله اول که ما می گوییم یوزر پسوورد فرستاده بشه می توانیم هر اطلاعاتی که مد نظر داریم بفرستیم. مثلا حتی می توانید سریال دستگاهی که اپلیکیشن روی آن نصب شده بفرستید یا هرچیز دیگری. مهم این است که شما یک شماسه منحصر به فرد از شخص لاگین کننده بدست بیاورید که بتوانید بعدا درخواست های وی را مدیریت کنید. (7 سال پیش)
+3 0
در پاسخ به سوال دوم :من قصد داشتم جواب این سوال را در پست بعدی ارسال کنم. ولیمختصری توضیح می دهم. MithM یک حمله است که بسیار به ندرت قابل انجام است.(یعنی در هر شرایطی نمی توان آن را پیاده کرد.) اما در این حالت نه تنها JWT بلکه تقریبا اغلب روش های امنیتی دیگر نیز با آن مشکل دارند. در این حالت بهترین کار استفاده از Https معتبر جهت ارتباط با API است. ضمنا حتی اگر یک هکر اگر تلاش کند اطلاعات یک توکن را با این روش بدست آورد حد اکثر چیزی که به دست می آورد اطلاعات مربوط به همان کاربر و همچنین تا مدت معینی خواهد بود. لذا همچنان اطلاعات سایر کاربران و کل سیستم API امن خواهد ماند. (7 سال پیش)
+1 0
برای امن کردن API های عمومی اگر توکن بر اساس مثلا شناسه دستگاه کاربر ساخته بشه مثلا androidID ، در این صورت مهاجم (کسی که قصد استفاده از API ما در سرویس های خود را دارد) هم یه مقدار fake به سرور ارسال میکنه و توکنی که سرور بهش میده رو مورد استفاده قرار میده. (7 سال پیش)
+3 0
شما دارید می گویید API های عمومی. اگر عمومی هست که دیگر نیازی نیست از jwt استفاده کنید. jwt برای ایجاد امنیت اطلاعات محرمانه است که غالبا بین هر کاربر با کاربر دیگر متفاوت است. اگر هدفتان این است که سرویسی داشته باشید که فقط Application خودتان به آن دسترسی داشته باشد باید از API_Key استفاده کنید.که آن هم با همان MitM باز قابل دسترسی است و دوباره مباحث https پیش می آید. برای ایجاد امنیت بیشتر سورس کدتان نیز نهایتا می توانید Api_Key را به کمک ndk پیاده کنید که بعد از کامپایل به این راحتی دیگر برگشت پذیر نیست. (7 سال پیش)
0 0
تا اونجایی که من فهمیدم تو این روش ما از طریق Signature صحت اطلاعات رو بدست میاریم و بقیه اطلاعات اختیاریه و در صورت نیاز اضافه میشه و قسمت هدر هم فقط استاندارد سازی شده (قسمت Signature هم از همین اطلاعات اضافی دست میشه ولی کاربر به هیچ وجه خودش نمیتونه اینو درست کنه چون کلید encrypt رو نداره). حالا سوال من اینجاست که برای لوگین دوباره باید چی کار کرد؟ بازم باید پسورد رو از کاربر پرسید؟ البته این روش هم همچنان مشکل روش سوم رو داره چون برای استفاده مجدد از این توکن باید سمت کلاینت ذخیره بشه البته خطرش از اون روش کمتره چون پسوردی در کار نیست (7 سال پیش)
+3 0
ببینید این که توکن سمت کاربر ذخیره میشه دیگه ایراد نیست. اگر واقعا کاربر سیستمش مورد حمله قرار بگیره و توکن را ازدست بده ... تقصیر سرویس نیست. سرویس می تونه به باقی کاربر ها اطمینان بده که آقا اگر مسایل امنیتی خودتون را رعایت کنید اطلاعات شما از سمت ما محفوظه . دیگه اگر کسی رفته باشه مثلا گوشی اش را root کرده باشه و باقی برنامه ها به حافظه های private اش دسترسی پیدا کنند ... اون تقصیر سرویس نیست. ولی ما با این روش کاری کرده ایم که در صورت از دست رفتن کلید ، فقط اطلاعات همون کاربر و فقط همین نرم افزار نهایتا هک میشه و نه رمز کاربر دست کسی می افته که اگر این رمز را جای دیگه ای هم استفاده کرده باشه اونجا هم به خطر بیافته و نه اینکه اطلاعات سایر کاربران سرویس ما و API مون در خطر می افته. پس کسی که خودش دستی دستی کلیدش را میده به یکی دیگه نباید توقع داشته باشه ما اطلاعاتش را حفظ می کنیم. برای لوگین دوباره هم بله ، باید دوباره user/pass را از کاربر پرسید. مگر اینکه تاریخ انقضای توکن را آنقدر زیاد بگذارید که حالا حالا ها منقضی نشه (7 سال پیش)
0 0
الان برنامه هایی مثل تلگرام چی کار میکنن که بعد از اولین لوگین برای همیشه یوزر لوگین میمونه؟ (7 سال پیش)
0 0
تلگرام دقیقا از jwt استفاده نمیکنه .اون اسم روش امنیتی خودش را گذاشته MTPro که ار جرئیات اون خیلی اطلاع ندارم. با jwt هم میشه exp را آنقدر زیاد رار داد که تمام نشه. مثلا بگذاری 10 سال. بستگی به سیاست شما داره . (7 سال پیش)
0 0
دوست عزیز اگر امکانش هست یک نمونه از کد jwt بذارین. من کلیات رو متوجه میشم ولی روش استفاده رو نمیتونم بفهمم (7 سال پیش)
0 0
سلام ممنون از توضیحات خوبتون منم مشکل این دوستمون رو دارم متوجه اصل موضوع شدم ولی نحوه استفادش رو نفهمیدم. اگه میشه یه نمونه کد بدین عالیه (7 سال پیش)
0 0
دوست عزیز اگه میشه سورسی که توی تابیک نوشتید ارجاع بدید بدونیم چطور باید استفاده کرد (6 سال پیش)
0 0
سلام ، ممنون بابت این تاپیک مفید و کاربردی . چرا دیگه ادامه ندادین ؟ نمونه سورسی وجود نداره که نحوه کار رو بفهمیم ؟ (6 سال پیش)

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