بدون کوکی های شبح وار

کوکی ها به بهترین شکل تازه هستند، بنابراین جدیدترین دستور العمل ها برای اطمینان از اینکه همچنان می توانید از فصل شبح وار بدون هیچ کوکی کهنه ای لذت ببرید چیست؟

کوکی ها به بهترین شکل تازه هستند، بنابراین جدیدترین دستور العمل ها برای اطمینان از اینکه همچنان می توانید از فصل شبح وار بدون هیچ کوکی کهنه ای لذت ببرید چیست؟

ما در مسیر حذف تدریجی کوکی‌های شخص ثالث در پلتفرم وب هستیم. این یک نقطه عطف مهم در مقابله با ردیابی بین سایتی است، اما بخشی از یک سفر بسیار طولانی است. بیایید نگاهی بیندازیم به اینکه چقدر پیشرفت کرده‌ایم و چه خوراکی‌هایی در آینده در انتظارمان است…

در ظاهر، کوکی‌ها یک ذخیره‌سازی ساده با ارزش کلیدی را فراهم می‌کنند که بین مرورگر و سرور ارسال می‌شود. این می تواند عملکرد مفیدی را در یک سایت ارائه دهد، مانند ذخیره یک اولویت: theme=bats یا ذخیره شناسه جلسه برای یک کاربر وارد شده به سیستم.

یک کوکی شخص ثالث با مقدار ساده ای مانند theme=bats یا fav_pumpkins=us-nyc

اگر آن کوکی در همان سایتی که آن را تنظیم کرده است استفاده می شود، ما تمایل داریم آن را کوکی شخص اول بنامیم. اگر به عنوان بخشی از سایتی متفاوت از سایتی که آن را تنظیم کرده استفاده می شود، آن را کوکی شخص ثالث می نامیم. به عنوان مثال، اگر من از همان سایتی بازدید کنم که آن را تنظیم کرده است، کوکی theme=bats من شخص اول خواهد بود، اما اگر در یک iframe یا سایر منابع بین سایتی به عنوان بخشی از یک سایت دیگر گنجانده شود، یک سوم خواهد بود. -کوکی مهمانی

مشکل کوکی های شخص ثالث این است که می توانند ردیابی بین سایتی را فعال کنند. به جای تنظیم چیزی مانند یک موضوع، سرویس مشترک ممکن است یک شناسه کامل را در آنجا ذخیره کند. هنگامی که در سایت‌های مختلفی که شامل کوکی سرویس‌های مشترک هستند حرکت می‌کنید، همان شناسه ارسال می‌شود - به این معنی که یک سرویس می‌تواند فعالیت شما را در آن سایت‌ها مشاهده و پیوند دهد.

یک کوکی شخص ثالث با یک شناسه منحصربه‌فرد که به سایت شخص ثالث اجازه می‌دهد کاربر را در سراسر وب ردیابی کند

کوکی های شخص اول به طور پیش فرض

ما قبلاً در سفر خود به اینجا پیشرفت کرده ایم! قبلاً فقط با تنظیم یک کوکی ساده: theme=pumpkins در همه زمینه ها ارسال می شد: همان سایت یا متقاطع! اکثر سایت‌ها فقط می‌خواهند کوکی‌هایشان در یک زمینه همان سایت ارسال شود. این را می توان از طریق ویژگی SameSite روی کوکی کنترل کرد. مثلا:

Set-Cookie: theme=bats; SameSite=Lax

این به مرورگر می‌گوید که فقط در صورتی کوکی را ارسال کند که منبع با سایت سطح بالا مطابقت داشته باشد. با این حال، این بدان معناست که سایت باید مشخص کند که چه زمانی کوکی شخص اول را می خواهد. این از نظر امنیتی کمی عقب است زیرا واقعاً باید بپرسید چه زمانی امتیازات بیشتری می خواهید - نه اینکه آنها را به طور پیش فرض دریافت کنید.

بنابراین اکنون، SameSite=Lax پیش فرض است. اگر فقط theme=bats تنظیم کنید، فقط در یک زمینه همان سایت ارسال می شود.

مقدار پیش‌فرض SameSite=Lax ارسال یک کوکی را در زمینه شخص ثالث متوقف می‌کند

اگر یک کوکی بین سایتی یا شخص ثالث می خواهید (شاید به تمی نیاز دارید که در یک ویجت جاسازی شده نمایش داده شود) باید مشخص کنید:

Set-Cookie: theme=bats; SameSite=None; Secure
مقدار صریح SameSite=None کوکی را برای ارسال در زمینه های بین سایتی علامت گذاری می کند

این به مرورگر می‌گوید که می‌خواهید کوکی در هر زمینه بین سایتی ارسال شود، اما ما می‌خواهیم فقط به اتصالات ایمن محدود کنیم.

حتی شیرینی های خوشمزه تر

در حالی که پیش‌فرض کمی بهتر شد، هنوز جا برای بهبود این دستور وجود دارد. در اینجا یک طعم سریع وجود دارد:

Set-Cookie:  __Host-theme=bats;
  Secure;
  Path=/;
  HttpOnly;
  Max-Age=7776000;
  SameSite=Lax;

این یک کوکی شخص اول را به شما می‌دهد که فقط به یک دامنه محدود می‌شود، اتصالات امن، بدون دسترسی جاوا اسکریپت، به طور خودکار قبل از کهنه شدن منقضی می‌شود و (البته!) فقط در زمینه‌های همان سایت مجاز است.

شیرینی ها با چیپس طعم بهتری دارند!

یکی از جنبه های جادویی وب، توانایی ایجاد چندین سایت با هم است. فرض کنید می‌خواهم یک ویجت نقشه ایجاد کنم که به سایت‌های دیگر امکان می‌دهد بهترین تورهای پچ کدو تنبل یا مسیرهای ترفند را نشان دهند. سرویس من از یک کوکی استفاده می کند تا به کاربران اجازه دهد پیشرفت خود را در طول مسیر ذخیره کنند. مشکل این است که همان کوکی شخص ثالث قرار است در سایت پچ کدو تنبل مانند سایت ترفند یا درمان ارسال شود. من نمی‌خواهم کاربران را بین سایت‌ها ردیابی کنم، اما مرورگر فقط از یک شیشه کوکی استفاده می‌کند—هیچ راهی برای جدا کردن این استفاده وجود ندارد!

کوکی‌های بین سایتی با SameSite=هیچکدام هنوز همگی در یک شیشه کوکی مشترک قرار می‌گیرند

اینجاست که پیشنهاد کوکی‌ها دارای حالت پارتیشن‌شده مستقل یا تراشه‌ها مطرح می‌شود. به‌جای یک شیشه کوکی مشترک، یک شیشه کوکی جداگانه و پارتیشن‌بندی شده برای هر سایت سطح بالا وجود دارد. سایت‌ها با استفاده از ویژگی Partitioned در کوکی خود، آن را انتخاب می‌کنند.

Set-Cookie: __Host-route=123;
  SameSite=None;
  Secure;
  Path=/;
  Partitioned;
ویژگی Partitioned در کوکی، شیشه‌های کوکی جداگانه در هر سایت سطح بالا ایجاد می‌کند

به جای این که مجبور باشیم آن شیشه کوکی را به اشتراک بگذاریم، هر کس خودش را می گیرد! ساده تر، ایمن تر و بهداشتی تر.

ما به تازگی Intent to Ship برای کوکی‌ها با حالت پارتیشن مستقل (CHIPS) را در Chrome 109 ارسال کرده‌ایم، به این معنی که آنها برای آزمایش در نسخه بتا در دسامبر در دسترس خواهند بود و سپس برای پایدار در ژانویه 2023 آماده خواهند شد. بنابراین، اگر به دنبال تصمیم سال جدید برای بهبود دستور العمل کوکی های سایت شما، سپس نگاهی بیندازید و ببینید آیا می توانید شروع به پاشیدن تراشه ها به آن کوکی های بین سایتی کنید یا خیر!

دعوت از کوکی ها به مهمانی با مجموعه های شخص اول

در مورد بازخورد توسعه‌دهندگان، بسیاری از شما همچنین به وضوح بیان کردید که موقعیت‌هایی وجود دارد که در آن سرویس‌ها را در بین سایت‌هایی که کنترل می‌کنید به اشتراک می‌گذارید و می‌خواهید بتوانید از کوکی‌ها در آنها استفاده کنید - اما اجازه نمی‌دهید در زمینه‌های واقعی شخص ثالث ارسال شوند. به عنوان مثال، شاید شما pretty-pumpkins.com و pretty-pumpkins.co.uk داشته باشید. ممکن است یک سیستم تک علامتی مبتنی بر کوکی داشته باشید که در این سایت‌ها کار می‌کند. CHIPS کار نمی کند زیرا من فقط باید در هر دو سایت وارد سیستم شوم - لازمه این است که من به همان کوکی در این سایت های مرتبط نیاز داشته باشم.

ما در حال کار روی پیشنهاد First-Party Sets هستیم تا این امکان را فراهم کنیم. ما یک آزمایش مبدأ و بحث‌های اجتماعی فراوانی را پشت سر گذاشته‌ایم که ما را به آخرین نسخه رسانده است:

  • به سازمان‌ها راهی بدهید تا گروهی از سایت‌ها را تعریف کنند که باید هم‌طرف یکدیگر باشند.
  • از Storage Access API برای درخواست دسترسی به کوکی‌های بین سایتی در مجموعه شخص اول استفاده کنید.
First-Party Sets اجازه می دهد یک شیشه کوکی مشترک فقط بین سایت های مرتبط وجود داشته باشد

همه این کوکی‌ها هنوز در فر پخته می‌شوند، اما می‌توانید راهنمای توسعه‌دهنده First-Party Sets را بررسی کنید، زمانی که چیزهای بیشتری برای آزمایش وجود دارد، یا در صورت تمایل می‌توانید به پیشنهاد WICG/First-party-sets بروید. برای مشارکت در بحث

اجازه ندهید کوکی های شما کهنه شوند!

هدف ما این است که از اواسط سال 2024 پشتیبانی از کوکی های شخص ثالث در Chrome را متوقف کنیم. زمان برای آماده شدن وجود دارد، اما باید از هم اکنون برنامه ریزی کنید.

  1. کد خود را برای هر کوکی با SameSite=None بررسی کنید. اینها کوکی هایی هستند که به به روز رسانی نیاز دارند.
  2. اگر کوکی های شخص ثالث ندارید، مطمئن شوید که کوکی های همان سایت شما از بهترین دستور العمل های کوکی های شخص اول استفاده می کنند.
  3. اگر از آن کوکی‌ها در یک زمینه کاملاً جاسازی شده استفاده می‌کنید، پیشنهاد CHIPS را بررسی و آزمایش کنید.
  4. اگر به آن کوکی‌ها در چندین سایت نیاز دارید که یک گروه منسجم را تشکیل می‌دهند، سپس پیشنهاد First-Party Sets را بررسی کنید.
  5. اگر تحت پوشش هیچ یک از این گزینه ها نیستید، باید سایر پیشنهادات Privacy Sandbox را بررسی کنید که در آن ما در حال توسعه APIهای هدفمند برای موارد استفاده فردی هستیم که به ردیابی بین سایتی متکی نیستند.

این فقط یک مرور کوتاه است و با پیشرفت کار به اشتراک گذاری اخبار و راهنمایی های بیشتری ادامه خواهیم داد. اگر سؤال، مشکلی دارید یا می خواهید نتایج کار خود را به اشتراک بگذارید، ما مسیرهای زیادی برای تماس با شما داریم.

بنابراین، به یاد داشته باشید: کوکی ها می توانند خوشمزه باشند - اما فقط تعداد کمی از آنها در یک زمان و قطعا سعی نکنید کوکی ها را بدزدید!