در دنیای امروزی که فعالیتهای آنلاین بسیاری را در بر میگیرد، امنیت اطلاعات حساب کاربری از اهمیت بالایی برخوردار است. یکی از تغییرات امنیتی مهمی که در مرورگر Google Chrome اعمال شده است، تغییراتی در SameSite attribute مربوط به کوکیها بوده است. این تغییرات باعث خروج ناگهانی کاربران از حساب کاربری پس از بازگشت از درگاههای پرداخت میشود. در این مقاله، به بررسی علت و راهحل این مشکل خواهیم پرداخت.
مدت زمان زیادی از اعمال این تغییرات در مرورگر گوگل کروم می گذرد و ضمن اطلاع رسانی این تغییرات توسط گوگل، اما همچنان برخی سایت های بزرگ همچنان این مشکل را در وب سایت خود حل نکرده و کاربران را دچار مشکل کرده است.
SameSite چیست؟
SameSite یک attribute در کوکیهای HTTP است که به وبسایتها اجازه میدهد تا تعیین کنند که چگونه باید با کوکیها در درخواستهای متقابل دامنهای رفتار شود. این تغییر در امنیت به منظور کاهش حملاتی مانند ارتباط فراخوانی درخواست از دامنه مختلف (CSRF) مطرح شده است.
مقادیر SameSite
SameSite attribute میتواند سه مقدار زیر را داشته باشد:
- Strict: وقتی SameSite به “Strict” تنظیم میشود، کوکیها فقط در محدوده سایت اصلی ارسال میشوند. به عبارت دیگر، کوکیها فقط با درخواستهایی که از همان دامنهای که کوکی تنظیم شده است، نشأت میگیرند، ارسال میشوند. این سطح حفاظت بالاتری در مقابل حملات CSRF فراهم میکند، اما ممکن است برخی از قابلیتهای وبسایت تحت تأثیر قرار بگیرند اگر از درخواستهای متقابل دامنهای استفاده میکنند.
- Lax: وقتی SameSite به “Lax” تنظیم میشود، کوکیها به صورت پیشفرض فقط در یک محدوده سایت ارسال میشوند. اما اگر درخواست، درخواست ناوبری سطح بالا باشد (مانند کلیک بر روی لینک یا تایپ URL در نوار آدرس)، کوکیها ارسال خواهند شد.
- None: SameSite به مقدار “None” تنظیم میشود، این به این معنی است که کوکیها در درخواستهای متقابل دامنهای ارسال میشوند، بدون هیچ محدودیتی. اما برای ارسال این کوکیها، نیاز به تنظیم Secure نیز وجود دارد، به این معنی که فقط از طریق اتصال HTTPS ارسال خواهند شد.
تغییرات SameSite در Google Chrome
تغییراتی در رفتار SameSite در مرورگر Google Chrome از نسخه 80 و بالاتر اعمال شده است. قبل از Chrome 80، رفتار پیشفرض برای کوکیهای بدون SameSite این بود که به عنوان سیاست Lax در نظر گرفته شوند. اما از Chrome 80 به بعد، رفتار پیشفرض به این شکل تغییر کرده است که کوکیهای بدون SameSite به عنوان SameSite=Lax در نظر گرفته میشوند.
علاوه بر این، در Chrome 80، رفتار سختگیرانهتری درباره کوکیهایی که به عنوان SameSite=None علامت گذاری میشوند، معرفی شده است. از Chrome 80 به بعد، کوکیهایی که به عنوان SameSite=None علامت گذاری میشوند، باید همچنین به عنوان Secure نیز علامت گذاری شوند، به این معنی که فقط از طریق اتصال HTTPS ارسال خواهند شد. این تغییرات جهت تقویت امنیت و جلوگیری از برخی از حملات اعمال شدهاند.
علت خروج ناگهانی از حساب کاربری
مشکل خروج ناگهانی کاربران از حساب کاربری پس از بازگشت از درگاههای پرداخت به تغییرات در رفتار SameSite attribute در Chrome 80 و نسخههای بالاتر مربوط میشود.
وقتی کاربران به درگاههای پرداخت هدایت میشوند و سپس به وبسایت اصلی باز میگردند، ممکن است کوکیهای تنظیم شده توسط وبسایت توسط مرورگر حفظ نشوند یا ارسال نشوند. این باعث خروج کاربر از حساب کاربری میشود زیرا اطلاعات جلسه که در کوکیها ذخیره شده است، در دسترس نیست.
راهحل
برای حل این مشکل، وبسایتها باید مطمئن شوند که کوکیهایشان با SameSite attribute مناسب تنظیم شدهاند. اگر وبسایت پس از هدایت از درگاه پرداخت، از درخواستهای متقابل دامنهای استفاده میکند، SameSite را به SameSite=None؛ Secure تنظیم کند. این کار امکان ارسال کوکی در درخواستهای متقابل دامنهای را فراهم میکند و در عین حال تضمین میکند که فقط از طریق اتصال HTTPS ارسال میشود.
بازنگری امنیتی و بهروزرسانی کدها و پیکربندیها در وبسایتها جهت رعایت نیازمندیهای جدید SameSite attribute بسیار ضروری است. این اقدام باعث حفظ تجربه کاربری مطلوب و جلوگیری از خروج ناگهانی از حساب کاربری خواهد شد.
منابع: