حذف سشن (session) سبد خرید برگشت از درگاه پرداخت در لاراول same_site

تو روز تعطیل تیکت دریافت کردیم از مشتریان سایتهای اختصاصی لاراول که موقع برگشت از پرداخت ناموفق سبد خرید حذف میشه یکم بررسی کردیم دیدم درسته و این مشکل واقعا وجود داره

درموردش تحقیق کردیم بیشتر جواب ها در مورد این بود که خود درگاه پرداخت حذف میکنه! خوب درگاه پرداخت اصلا به سشن های من دسترسی داره مگه؟!!!

این مورد تو هر سایتی با هر زبانی که نوشته شده اتفاق افتاده بود یعنی ربطی به لاراول هم نداشت

بهزاد میرزازاده بهزاد میرزازاده

زمان مطالعه

3 دقیقه

بازدید

148

پرسش و پاسخ

0
حذف سشن (session) سبد خرید برگشت از درگاه پرداخت در لاراول same_site

مشکل حذف سشن (session) سبد خرید

طی آپدیت هایی که مرورگر ها ارائه کردن کوکی های نا امن پاک میشه پس این مورد رو خود مرورگر داره حذف میکنه و نه تقصیر درگاه پرداخته نه سرویس دهنده هاست و سرور، به متن زیر دقت کنید

 کروم  اعلام کرد در نسخه ۸۰ به بعد اقدام به اجرای یک سیستم طبقه بندی کوکی‌های امن و پیش فرض خواهد کرد. برای کوکی‌هایی که مقدار دهی SameSite را انجام نداده باشند بصورت پیش فرض مقدار دهی SameSite=Lax را در نظر خواهد گرفت. و تنها کوکی هایی که بر اساس SameSite=None; Secure تنظیم شده باشند در زمینه با محتوای خارجی در اتصال امن (https) در دسترس خواهند بود. در نتیجه کوکی‌هایی که این شرایط را نداشته باشند مسدود شده و حذف می شوند.

پس از آن فایرفاکس نیز به این قانون پیوست و در نسخه های جدید این قوانین را اعمال کرده است.

برای حل این مشکل به صورت کلی در سایتهایی که از انجین آپاچی استفاده میکنند میتونید از تکه کد ذیل استفاده کنید در فایل htaccess (مثل وردپرس، جوملا و ... )

<ifmodule mod_headers.c="">
Header always edit Set-Cookie ^(.*)$ $1;Secure;SameSite=None
</ifmodule>

حل مشکل حذف سشن (session) بعد از برگشت درگاه پرداخت در لاراول

برای یکپارچگی کد و راحت بودن کار در فریم ورک لاراول بهتره تو خود تنظیمات لاراول این مشکل رو حل کنید کافیه فایل session.php در پوشه config رو باز کنید و مقدار same_site برابر none قرار بدید. تفاوت مقدارهای same_site به صورت ذیل است:

  • Lax مرورگر در درخواست‌های cross-site کوکی ارسال نمی‌کند (به صورت پیش فرض در کوکی‌ها اعمال می‌شود).
  • Strict مرورگر کوکی را فقط برای درخواست‌های same-site ارسال می‌کند.
  • None به شما امکان می‌دهد کوکی‌ها را هم با درخواست‌های cross-site و هم same-site ارسال کنید.