CodeShot
Seniorسختی 3 از ۵· در 20٪ مصاحبه‌های این حوزه پرسیده شده

چرا نباید اطلاعات حساس داخل Payload یک JWT قرار داد؟

نشان کردن

پاسخ کوتاه

چون محتوای JWT فقط Base64 است و هرکس می‌تواند آن را بخواند؛ امضا فقط تضمین می‌کند دستکاری نشده، نه محرمانه بودن.

پاسخ کامل

خیلی‌ها فکر می‌کنند چون JWT «امضا شده» است پس امن است، ولی امضا فقط یکپارچگی (Integrity) را تضمین می‌کند، نه محرمانگی (Confidentiality) — هرکسی می‌تواند Payload را Decode و بخواند.

نکته مهم

تفاوت بین Encoding، Signing و Encryption را دقیق توضیح دهید.

اشتباه رایج

قراردادن رمز عبور یا شمارهٔ کارت داخل Payload یک JWT چون فکر می‌شود «امن» است.