آفلاین
user-avatar

احراز هویت کلاینت سرور

8 ماه پیش
توسط مرتضی مرادی آپدیت شد
آفلاین
user-avatar
سجاد ( 14756 تجربه )
3 سال پیش
تخصص : برنامه نویس

سلام
دوستان کسی می تونه احراز هویت بین کلاینت و سرور در اپ های اندروید اطلاعاتی بهم بده؟ ( معرفی کلیدواژه و یا مقاله انگلیسی )

آفلاین
user-avatar
حسام موسوی ( 403926 تجربه )
3 سال پیش
تخصص : طراح و برنامه نویس

با سلام باید در مورد jwt اطلاعاتی کسب کنید و ببینید به چه صورتی کار میکنه

آفلاین
user-avatar
سجاد ( 14756 تجربه )
3 سال پیش
تخصص : برنامه نویس

درمورد jwt کلیتی رو می دونم و برای احراز هویت بین کاربر و سرور استفاده می کنم.
به نظرتون برای احراز هویت کلاینت ( مثل اپ اندروید ) و سرور استفاده از این مفهوم تا چه حدی میتونه مفید باشه؟

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

آفلاین
user-avatar
حسام موسوی ( 403926 تجربه )
3 سال پیش
تخصص : طراح و برنامه نویس

اگر روش jwt رو بلد باشین میفهمید که این یک روش بسیار متداول و تقریبا در تمام اپلیکیشن ها داره استفاده میشه روش استفاده کردنش هم به این صورته که روت های backend خودتون رو اونای که نیاز به احراز هویت دارن و اونای که ندارن رو مشخص میکنید برای مثال در لاراول مفهمی به اسم میدلور داریم برای این کار
و بعد کاربر عملیات لاگین از گوشی به وب رو انجام میده یعنی یوزرنیم و پسورد رو میفرسه به سرور و سرور هم اگر اطلاعات صحیح بود یک token برای شما بر میگردونه در اپلیکیشن ذخیره میکنید و برای روت های که نیاز به احرازهویت دارن از اون token استفاده میکنید کاملا هم امن هست این موضوع
فقط اگر با لاراول کار میکنید
دوره ساخت Restful api با لاراول رو مشاهده کنید همه مفاهیم و پیاده سازی ها گفته شده
اگر هم با Nodejs کار میکنید دوره Restful api با nodejs

آفلاین
user-avatar
سجاد ( 14756 تجربه )
3 سال پیش
تخصص : برنامه نویس

اتفاقا همین الان https://roocket.ir/series/build-a-api-with-laravel رو دارم بررسی می کنم ولی به نظرم میاد منظورم رو دارم بد منتقل می کنم.

چیزی که درکش نمی کنم این هست که:
چه طور روت هایی که نیاز به لاگین کاربر ندارند رو امن کنم؟ یعنی مثلا اگر کسی اومد با packet capture یا امثالهم تریس کرد و احیانا روت خاصی رو به دست آورد نتونه بدون توکن منحصر به فردی ازش استفاده کنه.

آفلاین
user-avatar
علیرضا اصلانی ( 11894 تجربه )
3 سال پیش
تخصص : Web and Mobile Developer

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

واسه امنیت بیشترم میتونید تعداد ریکوست هارو محدود کنید مثلا 60 ریکوست برای هر فرد در دقیقه که تو لاراول به صورت پیشفرض همینطورم هست ولی این موردی که میگید رو متوجه میشم ولی سناریوتون مشکل داره اگه میخواید روتی بدون احراز هویت تحویل کلاینت بدین باید حاوی اطلاعاتی باشه که مشکلی نداره و بدست هرکیم افتاد هر استفاده ایی خواست بکنه مشکلی بوجود نیاره وگرنه نه نمیشه روتی پابلیک باشه بعد محدودیتی روش اعمال بشه!

آفلاین
user-avatar
سیدعلی موسوی ( 113233 تجربه )
3 سال پیش
تخصص : سی شارپ و پی اچ پی

سلام دوستان هم اشاره میکنن که با توکن

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

آفلاین
user-avatar
سجاد ( 14756 تجربه )
3 سال پیش
تخصص : برنامه نویس

@علیرضا:
نه، یک مثال می زنم، مثلا برنامه "دیوار" برای نمایش دادن لیست آگهی ها نیاز به لاگین نداره اما در عین حال آدرس رو امن کرده و کسی نمی تونه با استفاده صرف از url مربوط به گرفتن اطلاعات آگهی ها رو در سایت یا نرم افزار خودش نمایش بده.
@سیدعلی:
این مورد که شما می فرمایید مربوط به احراز هویت یوزر و سرور هست. بنده دنبال راهی می گردم که ارتباط کلاینت رو امن کنم.
مثلا یکی از راه های ابتدایی این هست که همراه با تمام درخواست ها به سمت سرور یک رمزکد شده ی رندوم هم ارسال بشه و در سمت سرور دیکد بشه و اگر معتبر بود جواب ارسال بشه.

آفلاین
user-avatar
نوید ( 17830 تجربه )
3 سال پیش
تخصص : برنامه نویس Go / Django

خب همون طور که دوستان در بالا گفتند همان کد رمز گزاری شده ای که باید بفرستید اسمش Token است و در بالا دوستان روشش رو براتون توضیح دادن
که چه جوری باید بسازید و بررسی کنید

آفلاین
user-avatar
سجاد ( 14756 تجربه )
3 سال پیش
تخصص : برنامه نویس

نوید جان، خوب بود ابتدا مکالمات رو کامل می خوندید، در مورد اینکه منظور بنده احراز هویت کاربر نیست عرض کرده بودم.

آفلاین
user-avatar
مرتضی مرادی ( 11536 تجربه )
8 ماه پیش
تخصص : توسعه دهنده لاراول و برنامه نویس اندروید

دوستان سوال ایشون رو بنده به یه زبان دیگه مطرح میکنم :

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

اما تو اپلیکیشن های حرفه ای ریسپانسی که میاد کد شده یعنی با کلید ssl کد شده و شما نمیتونی بهمی چی میاد و چی میره
همچین چیزی رو ندیدید تا حالا مگه ؟؟؟؟؟؟؟؟؟

یعنی من که با اندروید سمت سرور توکن خودم رو و مثلا شماره page رو میفرستم کسی که این وسط برنامه data capter تو گوشیش باشه راحت میفهمه من چی فرستادم و چی گرفتم و چی خواهم گرفت.
اما تو اپلیکیشن های رسمی این مواردی که فرستاده میشه بصورت یه سری رشته های نا مفهوم هست

این کار هم توسط ssl انجام میشه و نه هش کردن یا کد کردن دستی

سوالشون اینه

آفلاین
user-avatar
مرتضی مرادی ( 11536 تجربه )
8 ماه پیش
تخصص : توسعه دهنده لاراول و برنامه نویس اندروید
برای ارسال پاسخ باید وارد سایت شوید