امنیت JWT(JWT)
توکنهای JSON Web Token برای احراز هویت استفاده میشوند و باید به درستی پیادهسازی و محافظت شوند.
امنیت JWT چیه؟
خلاصه در یه جمله: JWT توکنیه برای احراز هویت، اگه درست پیادهسازی نشه هکر میتونه جعلش کنه و وارد اکانت بقیه بشه!
فرض کن یه کارت عضویت داری که امضا شده. اگه امضا رو بتونی جعل کنی، میتونی کارت فیک بسازی و خودت رو عضو جا بزنی! JWT همینه — یه توکنه که امضا داره. اگه امضا رو درست چک نکنی، هکر میتونه توکن فیک بسازه.
ساختار JWT:
Header: الگوریتم و نوع توکن Payload: دادهها (مثل user_id, role) Signature: امضا برای تأیید اعتبار
مشکلات رایج JWT:
۱. الگوریتم None:
هکر الگوریتم رو میکنه none، امضا رو حذف میکنه. سرور اگه چک نکنه، توکن رو قبول میکنه!
۲. کلید ضعیف: کلید امضا کوتاه یا قابل حدسه. هکر Brute Force میکنه.
۳. عدم تأیید امضا: سرور اصلاً امضا رو چک نمیکنه!
۴. دادههای حساس تو Payload: Payload رمزنگاری نمیشه، فقط Base64 میشه. هر کسی میتونه بخونه!
۵. انقضای طولانی: توکن تاریخ انقضا نداره یا طولانیه. هکر اگه بدزدش، ماهها میتونه استفاده کنه!
چرا برای امنیت مهمه؟
چون JWT برای احراز هویت استفاده میشه. اگه JWT رو هکر جعل کنه، میتونه وارد اکانت هر کسی بشه، حتی ادمین!