یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دورهها
استفاده از تخفیفهادرمورد jwt کلیتی رو می دونم و برای احراز هویت بین کاربر و سرور استفاده می کنم.
به نظرتون برای احراز هویت کلاینت ( مثل اپ اندروید ) و سرور استفاده از این مفهوم تا چه حدی میتونه مفید باشه؟
اگر بخوام بیشتر توضیح بدم، این موضوع رو در نظر بگیرید که مثلا 10 url داریم که نرم افزار برای کارهای گوناگون به سرور ازشون استفاده می کنه.
برخی از این url ها در زمانی که کاربر هویتش تایید شده قابل استفاده هست و تکلیف قضیه مشخصه که باید چه کار کرد.
ولی برخی دیگه مربوط به درخواست هایی هست که حتی اگر کاربر لاگین نکرده باشه مورد استفاده قرار می گیرند، در این حالت چه طور می تونیم اطمینان حاصل کنیم که کسی حتی در صورت تریس کردن ارتباطات و در آوردن url ها نتونه خارج از برنامه استفاده کنه؟
اگر روش jwt رو بلد باشین میفهمید که این یک روش بسیار متداول و تقریبا در تمام اپلیکیشن ها داره استفاده میشه روش استفاده کردنش هم به این صورته که روت های backend خودتون رو اونای که نیاز به احراز هویت دارن و اونای که ندارن رو مشخص میکنید برای مثال در لاراول مفهمی به اسم میدلور داریم برای این کار
و بعد کاربر عملیات لاگین از گوشی به وب رو انجام میده یعنی یوزرنیم و پسورد رو میفرسه به سرور و سرور هم اگر اطلاعات صحیح بود یک token برای شما بر میگردونه در اپلیکیشن ذخیره میکنید و برای روت های که نیاز به احرازهویت دارن از اون token استفاده میکنید کاملا هم امن هست این موضوع
فقط اگر با لاراول کار میکنید
دوره ساخت Restful api با لاراول رو مشاهده کنید همه مفاهیم و پیاده سازی ها گفته شده
اگر هم با Nodejs کار میکنید دوره Restful api با nodejs
اتفاقا همین الان https://roocket.ir/series/build-a-api-with-laravel رو دارم بررسی می کنم ولی به نظرم میاد منظورم رو دارم بد منتقل می کنم.
چیزی که درکش نمی کنم این هست که:
چه طور روت هایی که نیاز به لاگین کاربر ندارند رو امن کنم؟ یعنی مثلا اگر کسی اومد با packet capture یا امثالهم تریس کرد و احیانا روت خاصی رو به دست آورد نتونه بدون توکن منحصر به فردی ازش استفاده کنه.
آدرسایی که نیاز به لاگین و احراز هویت ندارن خب اطلاعاتشونم مسلما پابلیک باشه پس مشکلی نداره دیگه حالا یکی از طریق اپلیکیشنتون بخواد به اون آردس ریکوست بده یا با ابزار خودش به هرحال اطلاعاتی باید برگردونه که مشکل امنیتی بوجود نمیاره, اگر میاره که خب باید حتما اون روت توکن بگیره و احراز هویت بشه تو هر ریکوست.
واسه امنیت بیشترم میتونید تعداد ریکوست هارو محدود کنید مثلا 60 ریکوست برای هر فرد در دقیقه که تو لاراول به صورت پیشفرض همینطورم هست ولی این موردی که میگید رو متوجه میشم ولی سناریوتون مشکل داره اگه میخواید روتی بدون احراز هویت تحویل کلاینت بدین باید حاوی اطلاعاتی باشه که مشکلی نداره و بدست هرکیم افتاد هر استفاده ایی خواست بکنه مشکلی بوجود نیاره وگرنه نه نمیشه روتی پابلیک باشه بعد محدودیتی روش اعمال بشه!
سلام دوستان هم اشاره میکنن که با توکن
یوزر و پسورد کاربر ارسال میشه سمت سرور اگر درست باشه توکن برمیگردونه، شما فقط یه جایی در اپ ذخیره میکنی توکن رو، بعدش با درخواست api ، احراز هویت رو انجام میدی همین. میدلور در لاراول عالیه
@علیرضا:
نه، یک مثال می زنم، مثلا برنامه "دیوار" برای نمایش دادن لیست آگهی ها نیاز به لاگین نداره اما در عین حال آدرس رو امن کرده و کسی نمی تونه با استفاده صرف از url مربوط به گرفتن اطلاعات آگهی ها رو در سایت یا نرم افزار خودش نمایش بده.
@سیدعلی:
این مورد که شما می فرمایید مربوط به احراز هویت یوزر و سرور هست. بنده دنبال راهی می گردم که ارتباط کلاینت رو امن کنم.
مثلا یکی از راه های ابتدایی این هست که همراه با تمام درخواست ها به سمت سرور یک رمزکد شده ی رندوم هم ارسال بشه و در سمت سرور دیکد بشه و اگر معتبر بود جواب ارسال بشه.
خب همون طور که دوستان در بالا گفتند همان کد رمز گزاری شده ای که باید بفرستید اسمش Token است و در بالا دوستان روشش رو براتون توضیح دادن
که چه جوری باید بسازید و بررسی کنید
نوید جان، خوب بود ابتدا مکالمات رو کامل می خوندید، در مورد اینکه منظور بنده احراز هویت کاربر نیست عرض کرده بودم.
دوستان سوال ایشون رو بنده به یه زبان دیگه مطرح میکنم :
فرض کنید یه ادرس دارید وقتی که کال میکنید یه لیستی از مقاله ها رو بهتون میده حالا چه با توکن یا چه بدون توکن احراز هویت وقتی برنامه های sniffer دارید میتونید ریسپانسی که میاد رو ببینید دیگه . اصلا احراز هویت اینجا مهم نیست چون قشنگ معلومه که چی فرستادین و چی دریافت میکنید.
اما تو اپلیکیشن های حرفه ای ریسپانسی که میاد کد شده یعنی با کلید ssl کد شده و شما نمیتونی بهمی چی میاد و چی میره
همچین چیزی رو ندیدید تا حالا مگه ؟؟؟؟؟؟؟؟؟
یعنی من که با اندروید سمت سرور توکن خودم رو و مثلا شماره page رو میفرستم کسی که این وسط برنامه data capter تو گوشیش باشه راحت میفهمه من چی فرستادم و چی گرفتم و چی خواهم گرفت.
اما تو اپلیکیشن های رسمی این مواردی که فرستاده میشه بصورت یه سری رشته های نا مفهوم هست
این کار هم توسط ssl انجام میشه و نه هش کردن یا کد کردن دستی
سوالشون اینه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟