کوکی ها یکی از روش های موجود برای افزودن حالت پایدار به وب سایت ها هستند. در طول سال ها، توانایی های کوکی ها رشد و تکامل یافته است، اما برخی از مشکلات را نیز به مرورگرها تحمیل کرده اند. برای رفع این مشکلات، مرورگرها (از جمله Chrome ،Firefox و Edge) در حال تغییر رفتار خود هستند تا پیش فرض های بیشتر در حفظ حریم خصوصی را اعمال کنند.
در این مقاله، تغییراتی را که به Chrome (و سایر مرورگرها) مربوط می شود، نحوه برخورد با کوکی های شخص ثالث، تغییرات SameSite که باعث ناموفق شدن پرداخت های اینترنتی بعد از بازگشت از سایت می شوند، مورد بررسی قرار می گیرد.
پرداخت های ناموفق در فروشگاه های اینترنتی می تواند تاثیر منفی در فروش و اعتماد کاربران به برند شما داشته باشند.
SameSite چیست؟
در ماه مه 2019، Chrome برنامه خود را برای توسعه یک مدل ایمن جهت مدیریت کوکی ها اعلام کرد. این برنامه نوید یک تجربه مرور ایمن تر و سریعتر را به کاربران می داد. هدف Chrome افزایش شفافیت بود. کاربران باید از نحوه ردیابی افرادی که آنها را کنترل می کنند و روش های کنترل اطلاعات به اشتراک گذاشته شده، آگاه باشند. با هجوم نگرانی های مربوط به حریم خصوصی و حملات بالقوه بین سایت ها، Chrome برای محافظت از کاربران خود اقداماتی انجام داد. این تغییرات به طور چشمگیری بر تبلیغ کنندگان، ناشران یا هر شرکتی که برای هدف قرار دادن مخاطبان خود به کوکی ها اعتماد می کنند، تأثیر خواهد گذاشت.
از 4 فوریه 2020، Google Chrome ارسال کوکی های شخص ثالث را در درخواست های بین سایت ها متوقف کرد، مگر اینکه کوکی ها با استفاده از استاندارد IETF به نام SameSite ایمن و پرچم گذاری شوند.
هنگام بازدید از یک وب سایت، یک کوکی توسط مرورگر تولید می شود و در داخل پوشه ای در مرورگر وب شما ذخیره می گردد. این کوکی به عنوان راهی برای شناسایی شما و ارائه تجربه بهتر در مرور سایت ها استفاده می شود.
دو نوع کوکی وجود دارد - شخص اول و شخص ثالث. هر دو نوع می توانند اطلاعات یکسانی را در خود داشته باشند.
تصویر(1)
همانطور که در بالا نشان داده شده است، اگر به وب سایت a.com مراجعه کنید و تلاش کنید از همان نام دامنه a.com به سرویسی دسترسی پیدا کنید، کوکی های تولید شده، کوکی های شخص اول محسوب می شوند. با توجه به اینکه کوکی ها توسط همان سایت ایجاد شده اند، شما می توانید هنگام مراجعه به وب سرویس a.com از خدمات همان سایت بدون مشکل استفاده کنید. این خدمات شامل اطلاعات ورود به سیستم، موارد موجود در سبد خرید، تنظیمات سایت و غیره هستند.
در حالی که، اگر از یک وب سایت a.com بازدید کنید اما آن صفحه شامل محتوای (تصویر، iframe و غیره) از نام دامنه دیگری (b.com) باشد، کوکی های تنظیم شده توسط b.com کوکی های شخص ثالث محسوب می شوند.
این کوکی ها توسط سایت دیگری ایجاد شده اند و دسترسی b.com به آنها از طریق a.com (یا هر دامنه دیگر) یک درخواست بین سایتی است.
همانطور که قبلاً گفته شد، Google Chrome ارسال کوکی های شخص ثالث را در درخواست های بین سایتی متوقف می کند، مگر اینکه کوکی ها با استفاده از استاندارد IETF به نام SameSite ایمن و پرچم گذاری شوند. به عبارت دیگر، محتوای موجود در b.com (تصاویر، iframe و غیره) در صفحه a.com دیگر نمی تواند به کوکی های b.com دسترسی داشته باشد، مگر اینکه آن کوکی ها ایمن شده و به طور مناسب پرچم گذاری شوند.
همین مشکل در سایت هایی که از درگاه پرداخت استفاده می کنند، رخ می دهد به گونه ای که بعد از بازگشت کاربر از درگاه پرداخت، صفحه لاگین به سایت اولیه برای کاربر نمایش داده می شود و پرداخت نیز ناموفق می گردد.
رفع مشکل:
اگر از زبان PHP برای طراحی سایت خود استفاده کرده اید، با قرار دادن کد زیر در فایل htaccess. می توانید این مشکل را رفع کنید:
Header always edit Set-Cookie ^(.*)$ $1;SameSite=None;Secure
با توجه به اینکه فایل .htaccess یک فایل مخفی در هاست می باشد(اگر در ابتدای هر فایل (.) قرار داده شود، آن فایل در هاست مخفی می شود) جهت مشاهده این فایل مطابق با تصویر زیر، بر روی "Settings" (شماره1) در گوشه سمت راست سی پنل کلیک، سپس در پنجره باز شده تیک "Show Hidden Files" را فعال کنید.
تصویر(2)
3- بر روی فایل "htaccess" کلیک راست کنید و سپس از طریق گزینه "Edit" فایل مورد نظر را ویرایش کرده و کد زیر را داخل آن اضافه کنید.
Header always edit Set-Cookie ^(.*)$ $1;SameSite=None;Secure
تصویر(3)
نکته : در صورتی که با فعال کردن گزینه Show Hidden Files فایل .htaccess را مشاهده نکردید به این معنی است که فایل مورد نظر در هاست موجود نیست. به سادگی و مطابق با تصویر زیر، با کلیک بر روی گزینه "File" (شماره1) در بالای cpanel، پنجره ایجاد فایل جدید باز می شود، پس از وارد کردن نام فایل (.htaccess) بر روی "Create New File" کلیک نمایید.
تصویر(4)