جاوااسکریپت | JavaScript
Фотография
нажмите — покажем
нажмите — покажем
🔐 از localStorage به HttpOnly Cookie؛ معماری احراز هویت در SPA چطور عوض میشود
بیشتر SPAها JWT را در localStorage نگه میدارند و در هر درخواست به هدر Authorization اضافه میکنند. ساده است، ولی این روش دیگر «بهترین روش» نیست.
مشکل کجاست؟
هر کد JavaScript که در صفحه اجرا شود، از جمله کدی که از طریق XSS تزریق شده، میتواند با localStorage.getItem() توکن را بردارد و به سرور خودش بفرستد. علاوه بر این، فرانتاند مجبور است ذخیره، تمدید و ارسال توکن را هم خودش مدیریت کند، در حالی که مرورگر برای این کار سازوکار داخلی دارد.
راهحل: HttpOnly Cookie
سرور نشست را میسازد و با Set-Cookie به مرورگر میدهد. مرورگر خودش کوکی را نگه میدارد و با هر درخواست مناسب میفرستد و JavaScript اصلاً به آن دسترسی ندارد. نکته مهم این است که HttpOnly جلوی خود XSS را نمیگیرد، فقط اجازه نمیدهد اعتبارنامه خوانده و به بیرون منتقل شود.
📎 ترجمه کامل این مقاله در بخش نظرات موجود است.
🔗https://habr.com/ru/companies/gnivc/articles/1082540/
#️⃣#tip
👥@IR_javascript_group
🆔@IR_javascript
6 · 171 ·