روز ششم: backendchallenges.com – تأیید هویت شکسته با JWT & OAUTH2

چرا احراز هویت شکست می خورد؟
بیشتر توسعه دهندگان سیستم ورود به سیستم خود را تضمین می کنند پس از این به خطر افتاده است
اما بیایید واقعی باشیم:
- ذخیره JWT در
localStorage
خطرناک است - جریان اشتباه OAUTH2 بهشت هکر است
- محافظت بی رحمانه ای نیست؟ شما برای مشکل می خواهید
🛡 چالش شماره 1: JWTS را قفل کنید
مشکل
کاربران پس از ورود به سیستم JWT دریافت می کنند. اما آنها به طرز ناامیدی ذخیره می شوند ، هرگز منقضی نمی شوند و در صورت سرقت دوباره می توانند دوباره پخش شوند.
رفع
1 ⃣ JWTS را در کوکی های ایمن ذخیره کنید (httponly)
2⃣ از نشانه های کوتاه مدت + نشانه های تازه سازی استفاده کنید
3 ⃣ هنگام ورود کاربران یا جلسات ، نشانه ها را بچرخانید
💡 چالش جایزه: بعد از تنظیم مجدد رمز عبور ، لیست سیاه را اضافه کنید.
🔐 چالش شماره 2: جریان OAuth2 خود را سخت کنید
مشکل
جریان OAuth2 شما با استفاده از کمک های ضمنی PKCE از دست رفته است و دارای دامنه های بسیار گسترده ای است.
رفع
1⃣ از کد مجوز + PKCE استفاده کنید
2⃣ دامنه های باریک را تعریف کنید
3 ⃣ توکن ایمن را ذخیره کرده و مرتباً آنها را بچرخانید
💡 چالش جایزه: محدودیت نرخ را به جریان ورود به سیستم OAUTH خود اضافه کنید.
💣 چالش شماره 3: حملات نیروی بی رحمانه را متوقف کنید
مشکل
هر کسی می تواند 1000 تلاش ورود به سیستم را بدون مقاومت امتحان کند.
رفع
1⃣ محدودیت نرخ را به /login
وت /reset-password
2 ⃣ حسابهای قفل به طور موقت پس از تلاش های X
3 ⃣ تلاش برای ورود به سیستم در هر IP و کاربر
فکر نهایی:
احراز هویت درب جلو برنامه شما است.
آن را گسترده نگذارید.
👉 اکنون شروع به حل این چالش ها کنید:
Broken Auth را برطرف کنید – چالش های پس زمینه